使用HttpContext的WCF服务

时间:2010-08-07 04:37:47

标签: wcf asmx httpcontext operationcontext

我有一个Web服务,我使用相同的asmx扩展名转换为wcf服务。我有basicHttpbinding,因为我的服务与java,perl等各种客户端进行了对话。

我有一个验证,里面有HttpContext.Current。但我知道这在wcf服务中不起作用。我试图使用RequestContext或OperationContext但我无法这样做。我试着用

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]

但没有帮助。我从soapUI调用我的服务进行测试。

2 个答案:

答案 0 :(得分:1)

好的,所以我找到了解决方案。有很多方法可以获取HttpContext.Current上下文。我们可以使用OperationContext,也可以使用AspNetCompatibilityRequirements模式设置为Allowed,并在web.config中将aspNetCompatibilityEnabled设置为true。

对于我将asmx服务转换为wcf服务的情况,我还必须修改HttpHandler处理程序以删除并添加asmx路径到System.ServiceModel.Activation.HttpHandler。

答案 1 :(得分:1)

使用WCF服务时最好使用OperationContext。 因为你总是得到HttpContext.Current.Items总是Null只在ASP.NET运行时运行。 所以添加以下代码: -

OperationContext.Current.Extensions.Add(extension);