在VS2010上调试(Silverlight + PHP Web服务)应用程序

时间:2011-06-23 14:26:24

标签: php silverlight visual-studio-2010 debugging nusoap

我使用的是Visual Studio 2010,Silverlight 4和PHP Web服务(NuSOAP)。将XXXTestPage.html和XXX.xap文件复制到远程服务器并在Web浏览器中打开页面时,一切正常。我确实有" clientaccesspolicy.xml"远程服务器上的文件,这使它工作。因此,NuSOAP Web服务不仅可以使用soapUI等工具,还可以使用Silverlight应用程序。 但是,我无法在VS2010中调试我的应用程序。我收到一条错误消息" CommunicationException未被用户代码处理。尝试向URI' http://xxxxxxxx/php/service.php'发出请求时发生错误。这可能是由于尝试在没有适当的跨域策略的情况下以跨域方式访问服务,或者是不适合SOAP服务的策略。您可能需要联系服务的所有者以发布跨域策略文件,并确保它允许发送与SOAP相关的HTTP标头。在不使用InternalsVisibleToAttribute属性的情况下,在Web服务代理中使用内部类型也可能导致此错误。有关更多详细信息,请参阅内部异常。"

因此,我的VS2010解决方案只有一个项目,即Silverlight应用程序。我不使用asp.net。

我能够在没有调试的情况下生活一段时间,但现在应用程序变得越来越复杂,我确实需要它。

任何人都知道如何处理这个问题?

非常感谢。

修改1 。使用Fiddler(并在每次实验前删除所有IE9缓存数据)我已经看到了这个: a)在VS2010之外,我看到三个HTTP会话:一个用于.html文件,另一个用于.xap文件,最后一个用于service.php文件。在VS2010之外,一切正常。 b)在VS2010内部(尝试调试),我只看到一个HTTP会话,用于clientaccesspolicy.xml文件。我确实看到了答案,其中包含了这个:

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from>
        <domain uri="*"/>
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

由于没有更多的HTTP会话(它们应该在哪里,因为代码调用了NuSOAP Web服务),看起来VS2010不喜欢的.xml文件中有一些东西。我从MSDN页面复制了.xml。它有什么问题吗?它是否允许发送与SOAP相关的HTTP标头?感谢。

编辑2 。得到它了! &#34; clientaccesspolicy.xml&#34;文件应包含:

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="SOAPAction">
        <domain uri="*"/>
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

所以,解决了!我现在可以调试:-)无论如何,谢谢。

0 个答案:

没有答案
相关问题