2010-05-21 32 views
0

我已经完成的事件没有为WCF长时间运行的调用(最多1.5分钟返回)触发此问题,它在IE 8中工作正常,但不起作用Firefox,Chrome或Safari。 寻找小提琴结果显然会得到回报,正如我所说,它在IE中可以正常工作,所以事情的一方显然是有效的。Silverlight完成WCF调用不在Firefox中触发的事件

使用一个示例项目,我设法很好地缩小了它,这似乎是由于我使用Client HTTP Stack而不是浏览器堆栈进行网络连接。

有没有人有过很多客户端http stack的经验,或者遇到过这种类型的行为?

类似的事情发生在IE浏览器开始,但增加了客户端WCF服务的超时,解决了这个问题。

任何想法或建议,将不胜感激,因为我已经做了网络上搜索的一大堆,没有任何运气:(

干杯, 奥拉

回答

1

我结束了此报告,并here它在Silverlight视为一个bug 4

有没有过任何决议但是他们发现了一个解决方法,这里是来自回复到bug报告的MS人员的引用:

“虽然在这里尝试了,但我发现事件处理程序被调用,但e .Error属性有一个值。这意味着你不能访问e.Result(因为事件中有错误)。如果您按照以下所示更改实施,您会看到这一点。但是,我们仍在调查为什么Firefox中的客户端堆栈的行为与Firefox中的其他浏览器(IE)或浏览器堆栈的行为不同。

void client_DoLongTimeCompleted(object sender, DoLongTimeCompletedEventArgs e) 
{ 
DateTime timeStamp = DateTime.Now; 
if (e.Result == null) 
{ 
    txtOutPut.Text += string.Format("\n{0} {1}", e.Result, timeStamp); 
} 
else 
{ 
    txtOutPut.Text += string.Format("\n[{0}] Error: {1}", timeStamp, e.Error); 
} 
}"