我在c#中有一个wcf服务(就像msdn例子中的计算器服务一样),我想知道是否可以将它限制为每个IP仅服务一个客户端?
我希望一次连接几个IP的可能性(至少5-6个活动会话),现在可以使用,但我不希望每个唯一的IP(或唯一的计算机)连接超过1个
答案 0 :(得分:0)
如果您一次需要5个已打开的会话并且您说maxConcurrentInstances仅导致1个可用客户端,您是否将InstanceContextMode设置为= PerSession?你最有可能将它设置为Single,在这种情况下maxConcurrentCalls没有效果。将其更改为PerSession,ForeverDebugging显示的限制配置将起作用。
答案 1 :(得分:0)
然后,如果来自同一个ip的人连接,我将中止该IP地址使用的上一个频道(最新连接具有优先权):
operationContext.Channel.Abort();
我测试了它,似乎可以释放会话,所以其他人可以使用它,但我不确定 - 这是最好的解决方案吗?