我在c#中有一个wcf服务(就像msdn示例中的计算器服务),我想知道是否可以将其限制为每个IP只服务一个客户端?
我希望一次连接几个IP的可能性(至少5-6个活动会话),这目前有效,但我不希望每个唯一的IP(或唯一的计算机)超过1个连接
发布于 2009-12-07 15:16:02
我取得了一些进展。当客户端第一次调用服务时,我在构造函数中保存了他的ip地址和当前的操作上下文。
然后,如果来自相同ip的人连接,我将中止该ip地址使用的前一个通道(最新的连接优先):
operationContext.Channel.Abort();我测试了它,它似乎释放了会话,以便其他人可以使用它,但我不确定--这是最好的解决方案吗?
发布于 2009-12-04 22:42:00
如果您需要一次打开5个会话,并且您说maxConcurrentInstances只会导致1个可用客户端,那么您是否已将InstanceContextMode设置为= PerSession?您很可能将其设置为Single,在这种情况下,maxConcurrentCalls不起作用。将其更改为PerSession,ForeverDebugging显示的限制配置将起作用。
https://stackoverflow.com/questions/1846426
复制相似问题