2010-12-21 69 views
0

我有一个单一的WCF Web服务的自定义代理类(需要一个字符串,返回一个字符串)。异步Web服务调用在我的Windows窗体应用程序中效果很好。但是,当我从测试Silverlight应用程序调用它时,出现错误:Hresult 0x80000012。这个错误是针对文件上的扩展属性,我相信...去图。Silverlight的Web服务调用甚至没有打到服务器

使用Fiddler我可以确认没有任何流量正在将它传递给托管该服务的IIS,因此它不是通常的跨域限制问题。我已经尝试使用“localhost”(它在Windows窗体应用程序中工作)以及在我的hosts文件中定义的名称,以防“localhost”导致问题。

我已经通过从UI线程和线程池队列项目进行异步调用来测试它,结果相同。

代理代码基本上简化了MS代理生成器创建的代码,以编程方式设置绑定和设置而不是通过配置文件,我使用基本相同的源代码来编译库的普通.Net和Silverlight版本参与其中。 (现在,它基于的MS代理代码来自WCF网络服务,而不是来自RIA模板代码,所以也许在那里存在差异...)

四天在这一个没有结果的搜索。任何帮助或建议将不胜感激!

回答

3

想通了。我在我用来设置服务调用的部分URL中使用了(愚蠢的)反斜杠。大多数MS代码的内部部分都处理好了,并将它们转换为正斜杠 - 在Windows窗体上,事实上一切都无缝工作。但是,Silverlight库无法处理它,并抛出非常有用的“HResult 0x80000012”错误。

将我的反斜杠改为斜杠似乎解决了问题!

+1

您也可以用%5C替换所有反斜杠(这是反斜杠的URL编码字符)。这似乎工作得很好。 – S0me0ne 2012-12-06 07:49:47