WCF異常信息


1、服務“CJ.Demo.Conso.WcfService.EmployeeMngService”有零個應用程序(非基礎結構)終結點。這可能是因為未找到應用程序的配置文件,或者在配置文件中未找到與服務名稱匹配的服務元素,或者服務元素中未定義終結點。
<service name="CJ.Demo.Conso.WcfService.EmployeeMngService"> 整個類的路徑未設置正確

 

2、IIS部署WCF出現‘當前已禁用此服務的元數據發布’
a)如果用4.0框架需要在IIS中將asp.net版本設置為4.0
1

b )出現提示原因分析:當機器上安裝了asp.net 2.0和4.0時,需分別建立應用程序池,並在部署虛擬目錄時分屬於不同應用程序池。

   1) 建立不同應用池
2
   2) 將4.0虛擬目錄應用到4.0的應用程序池
3

//name屬性值必須置空

<behavior name="" >
          <!-- 將下列元素添加到服務行為配置中。 -->
          <serviceMetadata httpGetEnabled="true" />
</behavior>

 

3、沒有與給定的地址“”匹配的協議綁定。協議綁定在 IIS 或 WAS 配置中的站點級別配置。
http://blog.csdn.net/jhhja/article/details/6226307
正確的:address單獨放置

<baseAddresses>
<add baseAddress="http://localhost:8001/"/>
</baseAddresses>
</host>
<endpoint address="HelloService" binding="wsHttpBinding" contract="WCFService.IHelloService">
</endpoint>

 

4、如果在配置中將“system.serviceModel/serviceHostingEnvironment/multipleSiteBindingsEnabled”設置為 true,則需要終結點指定相對地址。如果在終結點上指定相對偵聽 URI,則該地址可以是絕對地址。若要解決此問題,請為終結點“http://localhost/Service1.svc”指定相對 URI。

解決方法:

<endpoint address="" //此處只拿出終結點地址部分
將終結點address改為空

原因:

IIS部署的時候,默認會有一個基地址Baseaddress,這個是根據你WCF服務程序的配置生成的。

如果你打算提供完成的地址格式,但是這個完整的地址格式 和Baseaddress 不匹配,比如端口不一樣,就會出錯。

address換成“”,目的就是使用默認的Baseaddress+“”。避免了你自己設置的和Baseaddress 不匹配的問題。

 

5、不允許使用此方法

服務器端方法定義中UriTemplate的路徑和客戶端訪問的方法不一致,必須如下

服務端: [WebInvoke(UriTemplate = "Add", Method = "POST")]
客戶端:var urlTemp = "http://localhost:3721/EmployeeMngService.svc/Add";
UriTemplate 的值必須和svc/Add后面的add相同

 

6、在 ServiceModel 客戶端配置部分中,找不到引用協定“ServiceReference1.IEmployeeMng”的默認終結點元素。這可能是因為未找到應用程序的配置文件,或者是因為客戶端元素中找不到與此協定匹配的終結點元素
ServiceReference1。EmployeeMngClient em = new ServiceReference1.EmployeeMngClient(); 通過添加引用使用服務時,客戶端endpoint終結點contract的設置,不是和服務器的contract相同,而是設置為和引用服務相關ServiceReference1.IEmploye1eMngaddress也不能設為和服務端address相同,而要設置為address=http://localhost:3721/EmployeeMngService.svc

 

7、此工廠上啟用了手動尋址,因此發送的所有消息都必須進行預尋址。

(這個問題花了我一天時間,網上完全沒有解決方案。且服務通過網址訪問正常,而通過客戶端訪問就會出現這個問題,歸根結底還是配置問題,暫時不知道為什么這樣)

  --報錯

 

     < client >
       < endpoint  name ="employeeService"
                address
="http://127.0.0.1:3721/employees"  
            
                binding
="webHttpBinding"  
                contract
="Artech.WcfServices.Service.Interface.IEmployees" />
     </ client >

 

--正常

 

  < behaviors >
       < endpointBehaviors >
         < behavior  name ="webBehavior" >
           < webHttp />
         </ behavior >
       </ endpointBehaviors >      
     </ behaviors >
     < client >
       < endpoint  name ="employeeService"
                address
="http://127.0.0.1:3721/employees"  
                behaviorConfiguration
="webBehavior"
                binding
="webHttpBinding"  
                contract
="Artech.WcfServices.Service.Interface.IEmployees" />
     </ client >

 

8、部署IIS 返回304.1找不到網頁
IIS-->虛擬目錄-->應用程序設置-->創建應用程序(執行權限選擇【腳本和可執行文件】)、應用程序池選擇4.0


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM