我有一个单一WCF Web服务的自定义代理类(接受一个字符串,然后发回一个字符串)。异步Web服务调用在我的Windows窗体应用程序中运行良好。但是,当我从测试Silverlight应用程序调用它时,我收到一个错误:Hresult 0x80000012。此错误适用于我认为的文件的扩展属性...转到图。
使用Fiddler我可以确认没有流量进入托管该服务的IIS,因此它不是通常的跨域限制问题。我已经尝试使用“localhost”(在Windows窗体应用程序中工作)和我的hosts文件中定义的名称,以防“localhost”导致问题。
我已经通过从UI线程进行异步调用以及从具有相同结果的线程池队列项进行了测试。
代理代码基本上只是简化了MS代理生成器创建的内容,以编程方式设置绑定和设置而不是通过配置文件,我使用基本相同的源来编译所涉及的库的正常.Net和Silverlight版本。 (现在,它所基于的MS代理代码来自WCF Web服务,而不是来自RIA模板代码,因此可能存在差异......)
在这个问题上进行了四天毫无结果的搜索。任何帮助或建议都会受到高度赞赏!
答案 0 :(得分:3)
想出来。我(在我用来设置服务调用的URL的一部分)中使用(愚蠢的)反斜杠。 MS代码的大部分内部部分都处理好了,并将它们转换为正斜杠 - 在Windows Forms上,事实上一切都是无缝的。但是,Silverlight库无法处理它并抛出非常有用的“HResult 0x80000012”错误。
将反斜杠更改为斜线似乎解决了问题!