WebOperationContext.current和HttpContext.Current之间的区别

时间:2013-09-11 17:25:58

标签: c# asp.net wcf-rest

我为客户开发网络和移动应用程序。在我当前的架构中,Web访问和移动访问之间共享许多资源。可以在网络上显示aspx页面,并将其调用到移动应用中的网络视图。我的问题是:

WebOperationContext.CurrentHttpContext.Current对象之间有什么区别?

根据我的理解,它是同一个对象,但我注意到WebOperationContext.Current在某些情况下为空,我不明白为什么。

1 个答案:

答案 0 :(得分:25)

WebOperationContext通常用于WCF REST方法,以便该方法可以访问传入请求和传出响应。

当可以访问传入请求和传出响应时,

HttpContext通常用于ASMX Web服务的ASP.NET WebForms页面或Web方法。

它们是针对不同的项目类型(WCF REST / ASP.NET WebForms)而设计的,因此您不应在错误的项目类型中使用它们。

关于.Current的值null的时候,那就更复杂了。即使您使用正确的项目类型调用此属性,也需要确保在正确的线程上进行调用。只有在处理请求的线程(也发出响应)上,您才能访问当前上下文。在任何其他线程(后台线程或您创建的新线程)上,您获得null。多年来人们都知道这一点,但有时初学者仍然会弄错。

相关问题