我有一个托管在 asp.net 应用程序中的 WCF 服务。
这是服务(缩短):
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
[ServiceContract(Name = Name, Namespace = Namespace)]
[ServiceBehavior(Name = Name, Namespace = Namespace)]
public class WcfMaintenanceFacade {...}
这里是托管:
RouteTable.Routes.Add(new ServiceRoute("entity/maintenance/5.20", new ServiceHostFactory(), typeof(WcfMaintenanceFacade)));
这是相关的配置部分:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
</system.serviceModel>
我的服务实例化了,请求进来了,并且事件HttpContext.Current
不为空。
有两个(对我来说是主要的)问题我无法解决:
HttpContext.Current.Session
是空的- Global.asax
Application_BeginRequest
永远不会被调用
是的,从调用堆栈看来,请求正在通过 WCF 激活管道,而不是 ASP.net 管道。那么我做错了什么?