Setting WCF InstanceContextMode (Per Call, Single) in web.confg

守給你的承諾、 提交于 2019-12-05 13:14:49

问题


Haven't come across this one with quite a bit of Googling.

I know I can set the instance by decorating the class name thus:

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

but can I specify this in the web.config file?

I know I can specify throttling (max concurrent users etc) in the web.config / app.config and that the numbers here have a context depending on the instance mode - but how to specify the mode (in most likely the behaviours section of the app.config / web.config)?

Originally we were going for Windows services. Now we are using WAS. Does WAS make any difference - eg. each 'per call' request will still get's it own 'server' as a pipeline operation?

Thanks


回答1:


You can't change InstanceContextMode and ConcurrencyMode in web.config with out of the box functionality but you can write your custom extension (behavior or custom ServiceHost + ServiceHostFactory + config section) to do that. Here is the example how to change InstanceContextMode without defining it in attribute on the service class.

Processing in WAS is the same - each service type still have its own service host and each request is processed in its own thread.




回答2:


You can not configure InstanceContextMode and ConcurrencyMode in config files, build in limitation in the WCF, i am sure MS has their reasons.

About hosting in WAS, if you have a web server with IIS 7/7.5 it is recommended to host your service with WAS because you can manage your services with the IIS management and get a lot of built in capabilities from it.




回答3:


As per the previous answers, you cannot do this without a bit of work. I had to do this for a customer recently and I have documented it here. I have also provided a validator to not allow the service to start if it is not configured how you would like it. The details are here changing-wcf-concurrency-programatically.



来源:https://stackoverflow.com/questions/5786753/setting-wcf-instancecontextmode-per-call-single-in-web-confg

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!