4Manuals

  • PDF Cloud HOME

在IIS中运行Web应用程序时HttpContext为NULL Download

    将aspnet设置从Azure门户解析为Json格式 如何在Blazor服务器中设置同意cookie 带模板的CreatedAtRoute 无法在EF Core 2.0中生成DBContext Diagram 是否提交交易如何返回? 您能帮我理解这段简短的ASP.NET源代码吗? 需要了解简短的ASP.NET源代码 与SQL Server中的“几何”列相交 在IIS WebSite虚拟应用程序下部署Angular 图像未显示在.net应用程序上

我有两个应用程序,都在同一Windows机器上运行。一个应用程序是IdentityServer4,另一个是我自己的Web应用程序(服务器端Blazor应用程序)。

两个Web应用程序都是使用.NET Core 3.1构建的。

导航到Web应用程序时,首先要重定向到IdentityServer4应用程序。我登录,然后重定向到我的Web应用程序。

登录成功,因为IdentitServer日志中没有错误。另外,我在Blazor网页上看到某个claim值。我在Blazor页面中显示此claim至CascadingAuthenticationState。通过该路径,一切正常。

但是,每当我尝试通过HttpContext在“代码隐藏”文件中获取登录用户时,都会得到Null引用。例如:

public UserService(IHttpContextAccessor httpContextAccessor)
{
    // HttpClient is NULL...
    var httpCtx = _httpContextAccessor.HttpClient;  
}

奇怪的是,当我在Visual Studio中本地运行应用程序时,一切正常。在Visual Studio中调试时,我看到HttpContext设置了我的所有用户数据。

但是,由于某些原因,当我从IIS运行应用程序时,HttpContext是NULL。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

如果在部署到Azure App Services或IIS后 发生HttpContext空引用异常,则您可能已经忘记启用WebSockets。

这是交易:

  

如果应用程序在具有IIS的Windows上运行:必须启用WebSockets 。

     

请参见IIS/IIS Express support部分。

这似乎是您必须遵循的prerequisite。在处理相同的问题并决定将我的应用程序从Visual Studio中发布到Azure之后,我才发现此问题。这样做之后,Visual Studio给我一个很好的警告,告诉我在Azure App Service上启用WebSockets协议。



Similar searches
    关于UIView和事件的位置的两个问题 您能帮我理解这段简短的ASP.NET源代码吗? Excel VBA用户表单文本框十进制格式 MySQL 5:如何在工作时间内找到客户的高峰 Onelogin通过API令牌使用会话访问第三方应用程序