【问题标题】:Why is my Silverlight client not finding the clientaccesspolicy file when I switch to SSL?为什么当我切换到 SSL 时,我的 Silverlight 客户端找不到 clientaccesspolicy 文件?
【发布时间】:2013-03-05 04:40:29
【问题描述】:

我开发了一个 Silverlight 客户端,它在常规 HTTP 上运行良好,但现在我试图让它在 SSL 上运行,我收到以下错误:

尝试向 URI [出于安全原因删除 URL] 请求时发生错误这可能是由于尝试以跨域方式访问服务而没有适当的跨域策略,或者策略不适用于 SOAP 服务。您可能需要联系服务的所有者以发布跨域策略文件并确保它允许发送与 SOAP 相关的 HTTP 标头。此错误也可能是由于在 Web 服务代理中使用内部类型而不使用 InternalsVisibleToAttribute 属性造成的。有关详细信息,请参阅内部异常。

我正在使用以下客户端访问策略:

<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="*">
        <domain uri="http://*"/>
        <domain uri="https://*"/>
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

关于什么可能导致此错误的任何想法?

【问题讨论】:

  • 谁签署了证书?如果不是来自受信任的 CA,则可能是问题所在。

标签: silverlight ssl https


【解决方案1】:

我认为您的客户访问政策中缺少一个小项目。 allow-from http-request-headersheaders 应该是="SOAPAction"。

试试这个。

<access-policy>  
   <cross-domain-access>    
     <policy>      
       <allow-from http-request-headers="SOAPAction">
          <domain uri="http://*"/>        
          <domain uri="https://*"/>
      </allow-from>      
      <grant-to>        
          <resource path="/" include-subpaths="true"/>      
      </grant-to>    
    </policy>  
  </cross-domain-access>
</access-policy>

如需进一步参考,请查看 Tim Heuer 的 this post

【讨论】:

    【解决方案2】:

    如果您在浏览器中运行 Silverlight 应用程序,如果 SSL 证书不受信任,浏览器可能会中止连接。如果您手动导航到 clientaccesspolicy.xml 文件(即https://localhost/clientaccesspolicy.xml),您可以在浏览器中添加受信任的证书。

    【讨论】:

      【解决方案3】:

      这是因为当您通过不同的协议向您的站点发出请求时,clientaccesspolicy.xml 文件。没有下载,使用任何调试工具检查您的浏览器,然后查看该文件并检查是否已下载

      【讨论】:

        猜你喜欢
        • 2011-04-04
        • 1970-01-01
        • 2014-09-22
        • 1970-01-01
        • 1970-01-01
        • 2020-12-10
        • 2018-09-08
        • 2021-12-19
        • 2014-12-30
        相关资源
        最近更新 更多