问题描述
|
这可能是服务器故障应该解决的问题之一,但是也许有一个代码级解决方案。
无论如何,这是问题。我有一个常规的MVC3应用程序,需要用户登录才能访问(在大多数操作上使用Authorize标签)。我在应用程序中还有一个Silverlight对象,该对象对返回图像的控制器操作进行HTTP GET调用(实际上这是一个地图图块)。该特定的控制器操作没有授权标签,因此是公共的。
Silverlight组件运行缓慢或仅处于阻塞状态,因为MVC应用程序显然一次只能处理一个请求,这一点已得到firebug的确认。这意味着只能依次提供地图图块。此外,常规(与地图无关的)请求也被排队,一段时间后一切都超时。
因此,要进行测试,我设置了另一个具有相同文档根目录的网站,并指示Silverlight组件从此处读取图块。现在可以同时请求图块,并且它可以平稳运行。
那么,有什么办法可以解决这种情况并只使用一个站点?
解决方法
如果您在服务器上使用会话操作,这将解释为什么请求排队。由于会话不是线程安全的,因此ASP.NET会序列化来自同一会话的所有请求,并顺序执行它们。