【发布时间】:2011-02-24 08:18:18
【问题描述】:
我们是否可以认为同时访问 Web 服务的相同方法的两个客户端是两个线程(涉及所有问题......)?
asp.net web 应用程序中的方法是否相同?
【问题讨论】:
标签: asp.net asp.net-mvc multithreading wcf iis
我们是否可以认为同时访问 Web 服务的相同方法的两个客户端是两个线程(涉及所有问题......)?
asp.net web 应用程序中的方法是否相同?
【问题讨论】:
标签: asp.net asp.net-mvc multithreading wcf iis
只要您不使用static 或其他基于静态的共享对象,代码中就不存在多线程问题。但是,您确实需要考虑资源(即文件)。
每个请求都由一个专用线程处理,一旦处理完请求,该线程就会返回线程池。
【讨论】:
这取决于。请参阅我对Why are these asynchronous RIA Service calls executed in serial on the web server? 的回答。它由ServiceBehaviourAttribute、InstanceContextMode 和ConcurrencyMode 的两个属性控制。
在 asp.net Web 应用程序中,来自多个客户端的请求倾向于并行处理,除非(出于某种奇怪的原因)两个客户端共享同一个会话,并且两个请求都针对标记为需要会话的页面(即我相信的默认值),在这种情况下,两个请求将被序列化。
【讨论】:
如果您谈论的是 WCF 服务,则行为取决于您如何配置服务。有关它的更多信息,您可以阅读this article on MSDN 和ServiceBehaviorAttribute.InstanceContextMode Property
【讨论】: