我有兩個網站託管在同一個IIS服務器上。 SiteA包含需要由SiteB訪問的WCF服務,以及在域中進行身份驗證的任何其他服務。配置WCF安全(wsHttpBinding)
服務配置了的wsHttpBinding,因此我相信,在默認情況下使用Windows的安全性。現在我可以從本地機器上運行的控制檯應用程序調用服務,也可以從運行在默認Visual Studio Web服務器中的Web應用程序調用服務,所以我認爲該認證正在工作。
但是,當SiteB嘗試訪問服務時,它會失敗,並顯示以下錯誤: 調用者未被服務驗證。
網站B在同一臺機器不是站點A上運行,所以我不明白爲什麼它不能進行身份驗證。 SiteB使用表單身份驗證,並將匿名訪問映射到域用戶。
下面是配置位:
站點A(服務):
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
<services>
<service behaviorConfiguration="wcfServiceBehaviour" name="MyService">
<endpoint address="" binding="wsHttpBinding" contract="IServiceContract" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="wcfServiceBehaviour">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
網站B(客戶端):
<system.serviceModel>
<client>
<endpoint address="http://xxxxx/Services/xxService.svc"
binding="wsHttpBinding"
contract="IServiceContract" />
</client>
</system.serviceModel>
澤維爾嗨,我的道歉,我錯了。我顯然錯過了這一點。 – Aliostad 2010-11-29 09:23:56