我遇到了这个问题,完成的事件没有为WCF长时间运行的呼叫(最多返回1.5分钟)触发,它在IE 8中正常工作,但在Firefox,Chrome或Safari中无效。 看着Fiddler,结果显然会被返回,正如我所说,它在IE中运行正常,所以事情的一面显然有效。
使用示例项目,我设法将其缩小得很好,这似乎是因为我使用Client HTTP Stack而不是浏览器堆栈进行联网。
有没有人对客户端http堆栈有过多经验或者之前遇到过这种行为?
IE开始时会发生类似的事情,但是在WCF服务的客户端增加了超时,解决了这个问题。
我会非常感激任何想法或建议,因为我已经在网上搜索了一大堆,没有任何运气:(
干杯, 奥拉
答案 0 :(得分:1)
我最终报告了这个here,它被认为是Silverlight 4中的一个错误。
没有任何解决方案,但是他们找到了一个解决方法,这是来自回复错误报告的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);
}
}"
答案 1 :(得分:0)
我遇到了完全相同的问题,并在此处报告了问题:http://forums.silverlight.net/forums/t/221590.aspx