WCF跨域 这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP...
生活随笔
收集整理的這篇文章主要介紹了
WCF跨域 这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
嘗試向 URI“http://localhost:8001/AccountService.svc”發出請求時出錯。這可能是由于試圖以跨域方式訪問服務而又沒有正確的跨域策略,或策略不適用于 SOAP 服務。您可能需要與該服務的所有者聯系,以發布跨域策略文件并確保該文件允許發送 SOAP 相關的 HTTP 標頭。出現此錯誤也可能是由于使用的是 Web 服務代理中的內部類型而沒有使用 InternalsVisibleToAttribute 屬性。有關詳細信息,請參閱內部異常。
解決方法:
一、在WCF項目根目錄下添加clientaccesspolicy.xml文件
?
Code<?xml?version="1.0"?encoding="utf-8"??>
<access-policy>
??<cross-domain-access>
????<policy>
??????<allow-from?http-request-headers="*">
????????<domain?uri="*"/>
??????</allow-from>
??????<grant-to>
????????<resource?path="/"?include-subpaths="true"/>
??????</grant-to>
????</policy>
??</cross-domain-access>
</access-policy>
二、在silverlight項目中添加一個中介類ServerManager.cs
?
Codepublic?class?ServerManager
????{
????????private?static?ServiceWcfClient?servicePicture?=?new?ServiceWcfClient();
????????internal?static?ServiceWcfClient?GetPox()
????????{
????????????if?(servicePicture.State?==?System.ServiceModel.CommunicationState.Created)
????????????{
????????????????servicePicture.Endpoint.Address?=?new?System.ServiceModel.EndpointAddress("http://localhost:52207/ServiceWcf.svc");
????????????????return?servicePicture;
????????????}
????????????else
????????????{
????????????????return?servicePicture;
????????????}
????????}
????}
三、實例化實體類的時候一般是這樣:ServiceWcfClient clientWcf = new ServiceWcfClient();
換成:ServiceWcfClient clientWcf = ServerManager.GetPox();
總結
以上是生活随笔為你收集整理的WCF跨域 这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机三级网络技术备考复习资料
- 下一篇: IT英语2-编程词汇编程英语词汇