Silverlight已完成Firefox中未触发WCF调用的事件

Silverlight已完成Firefox中未触发WCF调用的事件,silverlight,wcf,clienthttpstack,Silverlight,Wcf,Clienthttpstack,对于WCF长时间运行的调用(最多返回1.5分钟),我遇到了未触发已完成事件的问题,它在IE8中正常工作,但在Firefox、Chrome或Safari中不工作。 在Fiddler中,结果很明显得到了返回,正如我所说的,它在IE中工作正常,所以这方面的工作显然是正常的 通过使用一个示例项目,我已经很好地缩小了范围,这似乎是因为我使用的是网络而不是浏览器堆栈 以前有没有人对客户端http堆栈有过丰富的经验或遇到过这种行为 在IE中也发生了类似的事情,但增加客户端WCF服务的超时时间解决了这一问题 如

对于WCF长时间运行的调用(最多返回1.5分钟),我遇到了未触发已完成事件的问题,它在IE8中正常工作,但在Firefox、Chrome或Safari中不工作。 在Fiddler中,结果很明显得到了返回,正如我所说的,它在IE中工作正常,所以这方面的工作显然是正常的

通过使用一个示例项目,我已经很好地缩小了范围,这似乎是因为我使用的是网络而不是浏览器堆栈

以前有没有人对客户端http堆栈有过丰富的经验或遇到过这种行为

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

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

干杯,
Ola

我遇到了完全相同的问题,并在此处报告了此问题:

我最终报告了此问题,它被确认为Silverlight 4中的一个bug

该漏洞尚未得到任何解决,但他们已经找到了一个解决方法,以下是回复该漏洞报告的MS guy的引用:

“在这里尝试时,我发现调用了事件处理程序,但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);
}
}"