在web. config中设置WCF InstanceContextMode (Per Call, Single)



我还没有在谷歌上找到这个。

我知道我可以通过修饰类名来设置实例:

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, 
                 ConcurrencyMode = ConcurrencyMode.Multiple)]

但是我可以在web.config文件中指定这个吗?

我知道我可以在web.config/app.config中指定节流(最大并发用户等),并且这里的数字根据实例模式有上下文-但是如何指定模式(在最有可能的app.config/web.config的行为部分)?

最初我们打算开发Windows服务。现在我们使用WAS。WAS有什么区别吗?每个"每次调用"请求仍然会得到它自己的"服务器"作为管道操作?

谢谢

不能在web中更改InstanceContextModeConcurrencyMode。配置与开箱功能,但你可以写你的自定义扩展(行为或自定义ServiceHost + ServiceHostFactory +配置部分)做到这一点。下面是如何在不定义服务类属性的情况下更改InstanceContextMode的示例。

WAS中的处理是相同的-每个服务类型仍然有自己的服务主机,每个请求都在自己的线程中处理。

你不能在配置文件中配置InstanceContextMode和ConcurrencyMode,在WCF中内置限制,我相信MS有他们的原因。

关于在WAS中托管,如果你有一个带有IIS 7/7.5的web服务器,建议用WAS来托管你的服务,因为你可以用IIS管理来管理你的服务,并从中获得很多内置的功能。

根据前面的答案,您不可能没有一点工作就做到这一点。我最近不得不为一个客户这样做,我在这里记录了它。我还提供了一个验证器,如果它没有按照您希望的方式配置,则不允许服务启动。详细信息请参见此处以编程方式更改-wcf-concurrency。

相关内容

  • 没有找到相关文章

最新更新