Jam*_*mes 3 asp.net session web-services
我创建了一个ASMX Web服务,它在场景后面做一些Active Directory的工作.
由于我希望在用户会话下保留Web服务中的某些信息,我决定放入 [WebMethod(EnableSession = true)]并开始使用Session变量.
但是,当我打开该选项时,来自app - > web service - > app的返回时间变得非常漫长.(大约一分钟或更长时间).
如果我删除[WebMethod(EnableSession = true)],它是相当快的.
有谁知道发生了什么?
可能的原因:
编辑:
对于#2,显而易见的解决方案是避免使用会话状态 - 例如,您是否可以将相关信息放入另一个存储区(如缓存或数据库)(昂贵).
如果您只是在Web服务中读取会话状态,那么您可以利用只读会话状态(请参阅IReadOnlySessionState).只读会话状态允许并发只读请求 - 读/写请求仍将阻止所有其他请求.现在,EnableSessionfrom WebMethod属性不支持这一点 - 它既不提供会话也不提供读/写会话.因此,其中一个解决方法是实现自己的处理程序实现IReadOnlySessionState,然后使用http模块将asmx请求路由到thi处理程序,然后稍后将处理程序切换为默认处理程序.因为您的处理程序需要只读会话状态,所以您将具有只读会话状态 - 请参阅此论坛帖子,其中提供了切换处理程序的http模块.
| 归档时间: |
|
| 查看次数: |
3675 次 |
| 最近记录: |