我有一个Silverlight应用程序,该应用程序都通过轮询双链体和“正常”异步调用来使用WCF。一切正常,直到我添加了一个global.asax文件。

经过一个小时的谷歌搜索,我遇到了这个过时的博客 让·迪克·斯图尔特(Jean-Dirk Stuart) 这建议评论Stubbed Session_start事件。

果然纠正了问题,但引起了人们的关注。为什么这似乎是Global.asax文件的良性成员打破WCF调用的。

有帮助吗?

解决方案

是的,这是一个鲜为人知但令人讨厌的问题。问题归结为启用会话状态,一旦您将global.asax文件添加到Web项目中。一旦启用了会话状态,服务器将仅依次执行调用。这是两篇文章,其中包含一些更深入的信息:

http://blogs.msdn.com/b/silverlightws/archive/2009/09/30/having-a-pollingduplex-service-service-and-yany-ony-thy-thy-thy-thy-thy-wcf-service-in-wcf-same-n-the-same-website-website-causes-causes-causes-causes--causes--causes--causes-causes- silverlight-calls-be-slow.aspx

http://weblogs.asp.net/olakarlsson/archive/2010/05/20/simultanease-calling-calling-multiple-methods-on-a-a-wcf-service-from-silverlight.aspx

此行为仅在使用浏览器网络堆栈时发生,因此您的选项是:

  1. 在您的Web项目中禁用会话状态,或
  2. 使用客户端网络堆栈

希望这可以帮助...

克里斯

其他提示

有一些类型的绑定可以支持访问ASP.NET会话数据,除非WCF试图像HTTP模块一样,我真的看不到它会影响它的影响。您也可以使用反射器来拆卸代码在哪里获得异常。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top