当我通过IIS安装应用程序时,安装成功,而当进行SelfHosting安装时,安装失败。调试时发现HttpContext。对于自托管,Current总是为null,并且密码永远不会被解密。
if (HttpContext.Current != null)
{
var request = HttpContext.Current.Request;
if (request.PathInfo.Equals("/api/login"))
{
password = Decrypt(password);
}
}
HttpContext有其他选择吗。当前,以便它同时支持IIS和自托管安装?有人能帮忙吗!
注意:我尝试了HttpContextShim并修改了代码,但仍然面临同样的问题。还需要添加什么?
using HttpContext = HttpContextShim.HttpContext;
if (HttpContext.Current != null)
{
password = Decrypt(password);
}
HttpContext
在自托管环境中不可用。CCD_ 2由ASP设置。Net管道,HttpContext
仅在Web宿主模式下可用,在该模式下HttpControllerHandler创建请求。
httpcontext-shim
是在自托管ASP中工作的HttpContext的抽象。NET Web API。
PM> Install-Package HttpContextShim
参考:https://github.com/danielcrenna/vault/tree/master/httpcontext-shim