2009-12-02 105 views
0

我使用一个Silverlight与WCF,当我用名.web项目,然后它运行,但使用的银色光芒项目运行以下异常时抛出:试图使发生跨域问题

错误对URI'http://localhost:9000/Services/BLWCFSvrc.svc'的请求。这可能是由于尝试以跨域方式访问服务而没有适当的跨域策略或者不适合SOAP服务的策略。您可能需要联系服务的所有者以发布跨域策略文件,并确保它允许发送与SOAP相关的HTTP头。使用Web服务代理中的内部类型而不使用InternalsVisibleToAttribute属性也可能导致此错误。有关更多详细信息,请参阅内部例外。

我想使用Silverlight项目调试我的代码

在此先感谢

回答

0

只是复制clientaccesspolicy.xml文件(一个例子采取look at this post;你甚至可以用这个样品)到你的web服务器的根目录(如:C:\的Inetpub \ wwwroot文件\)。

这应该有所帮助。

0

我觉得你的问题是不同的,仅仅具有clientaccesspolicy.xml,它运行在Web项目中,这一事实意味着你正在提供政策,如果你有这些添加为单独的文件在Web项目中那么他们不会当你单独运行SL3应用程序时会被部署,但是我确定你已经明白了这一点,并且你正在通过WCF使用webHttp绑定(REST风格)提供策略,如果没有的话,你应该这样做。

我认为问题在于,当您运行webproject时,它将生成到本地IIS并从那里执行,IIS将允许SL3应用程序与端口/地址不同,该端口/地址与网站托管的端口/地址不同

本机运行SL3应用程序时,VS2008会自动生成一个测试html站点,并以一些默认设置托管它,并使用VS2008内置托管服务,该服务不允许与地址/端口通信的主机地址。 (尽管Silverlight是一个客户端库,VS2008可以做到这一点)

所以如果你想本机运行Silverlight应用程序,这意味着实际执行XAP,你可以将它部署到IIS,并配置IIS来传递XAP文件,或者只是安装它并运行它的浏览器,并让它从IIS更新的部署版本

+0

您可能还会发现,Web项目可以在VS2008中使用其内置的托管服务执行,这可能会失败,我有这个问题之前,我的解决方案是从IIS打开该网站并从那里建立+运行,这是最好的 – Neil 2009-12-03 22:18:21