我有一个 Silverlight 应用程序,它通过轮询 Duplex 和“正常”异步调用来使用 WCF。一切正常,直到我添加了一个 global.asax 文件。
经过一个小时的谷歌搜索,我发现了Jean-Dirk Stuart的这个相当过时的博客,它建议注释掉存根的 Session_start 事件。
果然解决了这个问题,但它引起了一个担忧。为什么 global.asax 文件的这个看似良性的成员会破坏 wcf 调用。
我有一个 Silverlight 应用程序,它通过轮询 Duplex 和“正常”异步调用来使用 WCF。一切正常,直到我添加了一个 global.asax 文件。
经过一个小时的谷歌搜索,我发现了Jean-Dirk Stuart的这个相当过时的博客,它建议注释掉存根的 Session_start 事件。
果然解决了这个问题,但它引起了一个担忧。为什么 global.asax 文件的这个看似良性的成员会破坏 wcf 调用。
是的,这是一个鲜为人知但令人讨厌的问题。问题归结为将 global.asax 文件添加到 Web 项目后启用会话状态。启用会话状态后,服务器将仅按顺序执行调用。这里有两篇文章有一些更深入的信息:
此行为仅在使用浏览器网络堆栈时发生,因此您的选择是:
希望这可以帮助...
克里斯
有一些类型的绑定支持访问 asp.net 会话数据,除非 WCF 尝试像 http 模块那样挂钩 session_start 事件,否则我真的不明白它会如何影响。您还可以使用反射器来反汇编您获得异常的代码。