在Windows服务中托管的WCF数据服务中,HttpContext.Current为null

时间:2013-10-17 11:36:14

标签: c# wcf-data-services httpcontext

我在Windows服务中创建了一个WCF数据服务,并尝试访问HttpContext。

我将此添加到我的配置文件中:

 <system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />   
 </system.serviceModel>

但是,当我尝试访问它时,它为null。

protected override void OnStartProcessingRequest(ProcessRequestArgs args)
    {
      base.OnStartProcessingRequest(args);   
      HttpContext httpContext = HttpContext.Current;
      File.AppendAllText(@"c:\Temp\ERROR.log",
      httpContext != null
       ?"HTTPCONTEXT IS NOT NULL"
       :"HTTPCONTEXT IS NULL");
    }

我还应该设置什么?

1 个答案:

答案 0 :(得分:1)

我找到了答案,我很害怕:

  

禁用的ASP.NET HTTP功能包括:

     

HttpContext.Current:在此模式下,此值始终为null。对于ASMX服务,这是一个ThreadStatic属性,存储在线程本地存储(TLS)中。 WCF提供了此功能的对应部分:OperationContext.Current。

来源:http://blogs.msdn.com/b/wenlong/archive/2006/01/23/516041.aspx