Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wcf 使用PollingDuplexHttpBinding关闭会话_Wcf_Silverlight_Pollingduplexhttpbinding - Fatal编程技术网

Wcf 使用PollingDuplexHttpBinding关闭会话

Wcf 使用PollingDuplexHttpBinding关闭会话,wcf,silverlight,pollingduplexhttpbinding,Wcf,Silverlight,Pollingduplexhttpbinding,我正在使用WCF PollingDuplexHttpBinding通道将通知推送到Silverlight客户端。在大多数情况下,它工作得很好,但我正在努力让一些基本会话管理功能正常工作 我遇到的最大问题是试图让服务器知道客户端已完成会话,不再需要任何通知。客户端上的CloseAsync调用停止通道的客户端仅发送该会话的新通知请求,并且还向服务器发送CloseSession SOAP请求。问题是通道的服务器端发回404,表示它无法识别CloseSession操作。据我所知,错误来自PollingD

我正在使用WCF PollingDuplexHttpBinding通道将通知推送到Silverlight客户端。在大多数情况下,它工作得很好,但我正在努力让一些基本会话管理功能正常工作

我遇到的最大问题是试图让服务器知道客户端已完成会话,不再需要任何通知。客户端上的CloseAsync调用停止通道的客户端仅发送该会话的新通知请求,并且还向服务器发送CloseSession SOAP请求。问题是通道的服务器端发回404,表示它无法识别CloseSession操作。据我所知,错误来自PollingDuplexHttpBinding通道的内部,而不是应用程序,因此可以正确处理会话关闭


有没有其他人遇到过这个问题,也许找到了解决办法?

看样子是不行的。

那篇牢骚文章真是太棒了,间接地解决了Silverlight在通过HTTP进行双工时工作非常慢的相关问题。实际上,这个问题是由在网站中打开ASP.Net会话状态并使用Silverlight的BroserHttp堆栈(而不是ClientHttp堆栈)引起的

Yavor(在本文中)很好地解释了这个问题:

如果您遇到此问题,简单的修复方法是在调用服务之前注册ClientHttp堆栈的路由。只需调用以下命令即可完成此操作:

WebRequest.RegisterPrefix(requestUri.AbsoluteUri, WebRequestCreator.ClientHttp);
其中requestUri是您的服务的Uri。希望这有帮助