我意识到这个问题已经被问了100次了,但是我仔细看过其他的答案,却找不到适合我的解决方案。我有一个SilverLight 4项目,其中包含一个WCF服务。每次向服务发出请求时,我都会收到以下错误:
试图向URI 'http://localhost:54998/MyService.svc‘发出请求时出错。这可能是因为尝试以跨域方式访问服务,而没有适当的跨域策略,或者不适合SOAP服务的策略。您可能需要与服务所有者联系,以发布跨域策略文件,并确保它允许发送与SOAP相关的HTTP报头。此错误还可能是由于在不使用InternalsVisibleToAttribute属性的情况下在web服务代理中使用内部类型造成的。有关详细信息,请参阅内部异常。
我已经读到,当在本地运行时,我的项目将不会使用IIS,因此在本地主机根中添加clientaccesspolicy.xml是没有意义的(为了以防万一,我还是添加了它)。我该怎么办?
编辑--这是我得到的内在例外
{System.Security.SecurityException:安全错误。在System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult) ( System.Net.Browser.BrowserHttpWebRequest.<>c__DisplayClass5.b__4(Object sendState) )
谢谢
发布于 2010-09-04 10:47:37
听起来,您需要将web服务项目合并到向客户端提供Silverlight应用程序的网站项目中。
发布于 2010-09-04 09:18:29
如果Silverlight应用程序来自与托管WCF服务的站点不同的域(如果端口号发生变化,这被认为是跨域的),则需要在承载WCF服务的站点的根目录放置一个clientaccesspolicy.xml,以便Silverlight应用程序可以通过以下方式访问它:
http://localhost:54998/clientaccesspolicy.xml然后它将调用服务:
http://localhost:54998/MyService.svchttps://stackoverflow.com/questions/3641591
复制相似问题