0

我遇到了这个问题,因为 WCF 长时间运行的调用没有触发已完成的事件(最多 1.5 分钟才能返回),它在 IE 8 中工作正常,但在 Firefox、Chrome 或 Safari 中不起作用。在 Fiddler 中查看结果显然会返回,正如我所说,它在 IE 中可以正常工作,所以这方面的事情显然是有效的。

使用示例项目,我设法很好地缩小了范围,这似乎是因为我使用客户端 HTTP 堆栈而不是浏览器堆栈进行网络。

有没有人对客户端 http 堆栈有很多经验或以前遇到过这种类型的行为?

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

任何想法或建议将不胜感激,因为我已经在网上进行了大量搜索,但没有任何运气:(

干杯,奥拉

4

2 回答 2

1

我最终在这里报告了这个问题,它被认为是 Silverlight 4 中的一个错误。

该错误没有任何解决方案,但他们找到了解决方法,这是回复错误报告的 MS 人员的引述:

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

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);
}
}"
于 2011-04-28T12:58:44.927 回答
0

我有完全相同的问题,并在这里报告了这个问题:http ://forums.silverlight.net/forums/t/221590.aspx

于 2011-03-07T15:05:17.910 回答