2013-09-25 137 views
1

在實施WCF服務並將其託管在IIS服務器上之後,它返回了以下錯誤。在IIS上託管WCF - EndpointNotFoundException

EndpointNotFoundException是由用戶代碼未處理的有沒有 端點在XXXXX是可以接受的消息聽。這通常是由不正確的地址或SOAP操作導致的 。有關更多詳細信息,請參見 InnerException(如果存在)。

該服務具有相同的實現和配置5運行服務沒有錯誤。

當我試圖找出IIS服務器上發生了什麼,下面的截圖。 enter image description here

所以看來這個特定的服務沒有檢測到合同。儘管我使用的配置如下。

 <service name="XX.XX.Provisioning.EldaftarManagementService"> 
     <endpoint address="" binding="customBinding" bindingConfiguration="ProvisioningServiceBinding" bindingNamespace="http://XX.XX.com/XX/" contract="XX.XX.Provisioning.Eldaftar.IEldaftarManagementService" /> 
     <endpoint address="basic" binding="basicHttpBinding" bindingConfiguration="ProvisioningBasicBinding" bindingNamespace="http://XX.XX.com/provisioning/" contract="XX.XX.Provisioning.Eldaftar.IEldaftarManagementService" /> 
     </service> 
<service name="XX.XX.Provisioning.Common.UserManagement.UserManagementService"> 
     <endpoint address="" binding="customBinding" bindingConfiguration="ProvisioningServiceBinding" bindingNamespace="http://XX.XX.com/XX/" contract="XX.XX.Provisioning.Common.UserManagement.IUserManagementService" /> 
     <endpoint address="basic" binding="basicHttpBinding" bindingConfiguration="ProvisioningBasicBinding" bindingNamespace="http://XX.XX.com/provisioning/" contract="XX.XX.Provisioning.Common.UserManagement.IUserManagementService" /> 
     </service> 

請注意,訪問service.svc url時,它通常會回覆並顯示wsdl。所以這意味着它在IIS上託管得很好。

我想念什麼?

更新:

客戶端配置。

<endpoint address="https://XXX/EldaftarManagementService.svc" behaviorConfiguration="ProvisioningClientBehaviour" binding="customBinding" bindingConfiguration="ProvisioningServiceBinding" contract="EldaftarManagementService.IEldaftarManagementService" /> 
<endpoint address="https://XXX/UserManagement.svc" behaviorConfiguration="ProvisioningClientBehaviour" binding="customBinding" bindingConfiguration="ProvisioningServiceBinding" contract="UserManagementService.IUserManagementService" /> 
+0

嘗試刷新您的參考。服務中可能發生了一些變化,這些變化在客戶端沒有處理。 – mrtig

+0

看來問題出在客戶端。在客戶端發佈配置文件值是非常有用的,以檢查它們是否與服務器上的值匹配。 –

+1

檢查合同的名稱空間。是XX.XX.Provisioning.Eldaftar? – GTG

回答

0

我注意到有些時候重新配置我的服務引用後,客戶端配置獲取服務器名稱wsdl。然後我得到EndpointNotFoundException異常。

例如:

服務引用是:http://192.168.61.2:1111/Service1.svc

,但在配置端點地址也顯示:http://serverName:1111/Service1.svc

後我改變配置端點地址的服務參考地址,那麼就解決了。不知道爲什麼,但現在每當我重新配置端點地址時,我都會手動更改配置端點地址以確保它獲得相同的地址。