我在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");
}
我还应该设置什么?
答案 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