新添加的global.asax文件如何使我的WCF服务变得混乱

时间:2010-12-10 18:36:59

标签: asp.net silverlight wcf pollingduplexhttpbinding

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

经过一个小时的谷歌搜索后,我遇到了Jean-Dirk Stuart这个相当过时的博客,该博客建议评论一下存根的Session_start事件。

果然纠正了这个问题,但它引起了一个担忧。为什么这个看起来很好的global.asax文件成员会破坏wcf调用。

2 个答案:

答案 0 :(得分:2)

是的,这是一个鲜为人知但烦人的问题。问题归结为在将global.asax文件添加到Web项目后启用会话状态。启用会话状态后,服务器将仅按顺序执行调用。这里有两篇文章,其中有一些更深入的信息:

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

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

仅在使用浏览器网络堆栈时才会出现此问题,因此您的选项为:

  1. 在您的网络项目中禁用会话状态,或
  2. 使用客户端网络堆栈
  3. 希望这会有所帮助......

    克里斯

答案 1 :(得分:0)

有一些类型的绑定支持访问asp.net会话数据,我真的不知道它会如何影响,除非WCF尝试像http模块那样挂钩session_start事件。您还可以使用反射器来反汇编代码所在的代码。