wcf上的timeoutexception或默认连接限制?
我首先为我的WCF服务启动了我的订阅者,然后继续发布我的发布者发布的帖子。我的订阅者能够收到帖子 其次,我关闭了我的第一个订户,然后再次打开它,以订阅同一服务,即所谓的已订阅该服务的第二个订户。再一次,它能够收到一个帖子 一旦我第三次重复这一点,就会有一个例外 无法在分配的00:01:00超时内传输消息。可靠通道的传输窗口中没有可用空间。分配给此操作的时间可能是较长超时的一部分 总结:wcf上的timeoutexception或默认连接限制?,wcf,exception,exception-handling,Wcf,Exception,Exception Handling,我首先为我的WCF服务启动了我的订阅者,然后继续发布我的发布者发布的帖子。我的订阅者能够收到帖子 其次,我关闭了我的第一个订户,然后再次打开它,以订阅同一服务,即所谓的已订阅该服务的第二个订户。再一次,它能够收到一个帖子 一旦我第三次重复这一点,就会有一个例外 无法在分配的00:01:00超时内传输消息。可靠通道的传输窗口中没有可用空间。分配给此操作的时间可能是较长超时的一部分 总结: 在第一个客户机上,订阅后,一切正常 关闭第一个客户端 在cilent上(意味着在同一个服务上的第二个连接(?)
<system.serviceModel>
<diagnostics performanceCounters="All" />
<bindings>
<wsDualHttpBinding>
<binding name="WSDualHttpBinding_IPostingContract" clientBaseAddress="http://localhost:8000/wcfClient/" closeTimeout="00:01:00"
openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"
bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:10:00" />
<security mode="Message">
<message clientCredentialType="Windows" negotiateServiceCredential="true"
algorithmSuite="Default" />
</security>
</binding>
</wsDualHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:8888/PostingContract/Posting"
binding="wsDualHttpBinding" bindingConfiguration="WSDualHttpBinding_IPostingContract"
contract="IPostingContract" name="WSDualHttpBinding_IPostingContract">
<identity>
<userPrincipalName value="##" />
</identity>
</endpoint>
</client>
</system.serviceModel>
这实际上让我可以启动超过2个windows窗体应用程序连接。但是如果我这样做,如果我事先启动了2个连接,第三个连接将收到3个弹出窗口,随后第四个连接将收到4个弹出窗口。当假定它接收1时。在客户端订户类上添加
UseSynchronizationContext=false
会有帮助吗
例如
[CallbackBehavior(ConcurrencyMode = ConcurrencyMode.Reentrant,
UseSynchronizationContext = false)]
原因可能是取消锁定回调
这里也有类似的帖子您好,谢谢您的回复。在客户端订户类中添加它是什么意思?我是在我的服务项目还是我的订户项目中添加代码?它应该在您的订户项目中?你在你的订户项目中使用回调行为吗?编辑了我上面的帖子。目前还没有。但在加入你所说的内容之后。它似乎有一些错误。有关错误,请参阅我上面的帖子:)
[CallbackBehavior(ConcurrencyMode = ConcurrencyMode.Reentrant,
UseSynchronizationContext = false)]