我在 Windows 服务中托管了一个简单的 WCF 服务。服务本身只模拟一个需要 10 秒才能完成的长事务。我在服务中还有代码可以将条目记录到我的数据库中,所以我知道它正在被调用,操作已完成,等等。以下是服务配置的摘要:
- 绑定:NetTcpBinding
- SessionMode:允许(没关系)
- IsOneWay:真
- InstanceContextMode:单
- 并发模式:单
然后我让我的测试客户端连续调用服务方法 4 次。我希望在日志中看到的是,所有内容都是按顺序执行的,当服务完成前一个调用时,多个调用排队并提供服务。
但是,我只能看到第一个呼叫被记录,其余呼叫被丢弃。如果我在每次通话之间留出 15 秒的间隔,那么每个通话都会被服务并记录下来。我搞砸了各种设置(inactivityTimeout、listenBackLog 等),但没有任何帮助。
我在这里想念什么?