如何序列化httpcontext对象并从asp.net服务器控件传递webservice?

时间:2011-10-18 07:29:31

标签: asp.net servercontrol

我希望通过从asp.net服务器控件序列化来传递httpcontext对象到webservice。但它不能与服务器控件一起使用。它正在使用Web应用程序。请帮我找到解决方案。

1 个答案:

答案 0 :(得分:1)

HttpContext.Current对象从Web应用程序传递给Web服务或此类通信的任何其他组合是没有意义的。

在IIS中运行的Web应用程序或Web服务中,HttpContext类及其静态成员Current应该可用并初始化。

如果您的网络服务配置为在另一个应用程序池或IIS中的其他应用程序中运行,那么current将返回与网络前端Current不同的内容。

如果您需要传递一些属性,如用户名,响应或请求标题等,则传递一堆参数或创建自己的类来托管您需要的所有内容,但不要直接传递上下文。

在某些情况下,如果您无法检索上下文或会话,可能是您编写了错误的内容;例如,HttpHandlers仅在实现IRequireSessionState时正确使用Session,并且HttpContext对象作为ProcessRequest方法的参数传递给处理程序。

我认为总的来说总是有办法,或者你的设计和架构不合适,但不需要自己从一层到另一层传递上下文。