我还没有在谷歌上找到这个。
我知道我可以通过修饰类名来设置实例:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall,
ConcurrencyMode = ConcurrencyMode.Multiple)]
但是我可以在web.config
文件中指定这个吗?
我知道我可以在web.config
/app.config
中指定节流(最大并发用户等),并且这里的数字根据实例模式有上下文-但是如何指定模式(在最有可能的app.config
/web.config
的行为部分)?
最初我们打算开发Windows服务。现在我们使用WAS。WAS有什么区别吗?每个"每次调用"请求仍然会得到它自己的"服务器"作为管道操作?
谢谢
不能在web中更改InstanceContextMode
和ConcurrencyMode
。配置与开箱功能,但你可以写你的自定义扩展(行为或自定义ServiceHost
+ ServiceHostFactory
+配置部分)做到这一点。下面是如何在不定义服务类属性的情况下更改InstanceContextMode
的示例。
WAS中的处理是相同的-每个服务类型仍然有自己的服务主机,每个请求都在自己的线程中处理。
你不能在配置文件中配置InstanceContextMode和ConcurrencyMode,在WCF中内置限制,我相信MS有他们的原因。
关于在WAS中托管,如果你有一个带有IIS 7/7.5的web服务器,建议用WAS来托管你的服务,因为你可以用IIS管理来管理你的服务,并从中获得很多内置的功能。
根据前面的答案,您不可能没有一点工作就做到这一点。我最近不得不为一个客户这样做,我在这里记录了它。我还提供了一个验证器,如果它没有按照您希望的方式配置,则不允许服务启动。详细信息请参见此处以编程方式更改-wcf-concurrency。