-2

我有 WCF 服务,并且在此服务中使用 MEF 我正在调用运行时类库。

我已经在这个类库中实现了 DI(castle Windsor),它在所有请求中都可以正常工作,但有时它会立即返回如下错误

“HttpContext.Current 为空。PerWebRequestLifestyle 只能在 ASP.Net 中使用”

我们已经应用了所有互联网解决方案,例如安装 Asp.net 功能,将 DI Lifecycle 从 LifestylePerWebRequest更改为scopehibridgeLifeStyle 等但没有找到下面的正确结果是我的代码

在此处输入图像描述


在此处输入图像描述

任何人都可以帮我解决这个问题。因为我是 DI 的新手,这不是生命周期问题、MEF 问题或线程问题,因为我正在调用这个类库来线程

提前致谢

4

1 回答 1

0

您需要在 ASP.Net 兼容模式下运行 WCF 才能访问 HttpContext。不知道为什么你需要它,因为那样你只能在 IIS 上以 asp.net 兼容模式运行 WCF 服务,而不能在 Windows 服务等不同的托管环境中运行。

更多信息在这里:https ://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/wcf-services-and-aspnet它还告诉您应该使用的上下文而不是 HttpContext

于 2019-03-19T11:11:19.467 回答