我希望通过从asp.net服务器控件序列化来传递httpcontext对象到webservice。但它不能与服务器控件一起使用。它正在使用Web应用程序。请帮我找到解决方案。
答案 0 :(得分:1)
将HttpContext.Current
对象从Web应用程序传递给Web服务或此类通信的任何其他组合是没有意义的。
在IIS中运行的Web应用程序或Web服务中,HttpContext
类及其静态成员Current
应该可用并初始化。
如果您的网络服务配置为在另一个应用程序池或IIS中的其他应用程序中运行,那么current
将返回与网络前端Current
不同的内容。
如果您需要传递一些属性,如用户名,响应或请求标题等,则传递一堆参数或创建自己的类来托管您需要的所有内容,但不要直接传递上下文。
在某些情况下,如果您无法检索上下文或会话,可能是您编写了错误的内容;例如,HttpHandlers仅在实现IRequireSessionState
时正确使用Session,并且HttpContext
对象作为ProcessRequest
方法的参数传递给处理程序。
我认为总的来说总是有办法,或者你的设计和架构不合适,但不需要自己从一层到另一层传递上下文。