我有一个 C# WCF Web 服务,它是一个服务器,我有 2 个客户端,一个是 Java 客户端,另一个是 C++ 客户端。我希望两个客户端同时运行。我有但无法弄清楚的情况是:
我的 Java 客户端将调用 WCF Web 服务,处理时间可能需要大约 10 分钟,同时我希望我的 C++ 客户端调用 Web 服务并获得响应。但是现在我只能在处理 Java 客户端请求时使用 C++ 客户端调用 Web 服务。在 Java 客户端请求完成之前,我没有收到 C++ 客户端请求的响应。
任何人都可以建议我如何使这项工作并行进行。提前致谢。
请您参考如下方法:
任何“正常”的 WCF 服务在任何给定时间都绝对可以处理多个客户端请求。
这完全取决于您对 InstanceContextMode 的设置:
PerSession 意味着,每个 session 都会获取服务类的副本以处理多个请求(来自同一客户端)
PerCall 意味着,每个请求都会获得服务类的新副本来处理该请求(并在处理调用后再次处理)
Single 表示您有一个单例 - 只有您的服务类的一个副本。
如果你有一个单例 - 你需要问自己:为什么? 默认情况下,PerCall 是推荐的设置,它应该很容易支持相当多的请求一次。
参见 Understanding Instance Context Mode以获得更详尽的解释。
