代码之家  ›  专栏  ›  技术社区  ›  Jeffrey Lott

为什么我的Silverlight客户端在切换到SSL时找不到clientaccesspolicy文件?

  •  1
  • Jeffrey Lott  · 技术社区  · 17 年前

    尝试向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>
    

    你知道是什么导致了这个错误吗?

    3 回复  |  直到 17 年前
        1
  •  1
  •   PortageMonkey    17 年前

    我认为您在客户端访问策略中缺少一个小项目。允许来自http请求的标题应为=“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>
    

    如需进一步参考,请查看 this post 蒂姆·豪尔

        2
  •  1
  •   Cavan    13 年前

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

        3
  •  0
  •   Anshuman Jasrotia singh    13 年前

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