我有两个应用程序,都在同一Windows机器上运行。一个应用程序是IdentityServer4,另一个是我自己的Web应用程序(服务器端Blazor应用程序)。 两个Web应用程序都是使用.NET Core 3.1构建的。 导航到Web应用程序时,首先要重定向到IdentityServer4应用程序。我登录,然后重定向到我的Web应用程序。 登录成功,因为IdentitServer日志中没有错误。另外,我在Blazor网页上看到某个 但是,每当我尝试通过 奇怪的是,当我在Visual Studio中本地运行应用程序时,一切正常。在Visual Studio中调试时,我看到 但是,由于某些原因,当我从IIS运行应用程序时, 我该如何解决这个问题? 答案 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协议。claim
值。我在Blazor页面中显示此claim
至CascadingAuthenticationState
。通过该路径,一切正常。HttpContext
在“代码隐藏”文件中获取登录用户时,都会得到Null引用。例如:public UserService(IHttpContextAccessor httpContextAccessor)
{
// HttpClient is NULL...
var httpCtx = _httpContextAccessor.HttpClient;
}
HttpContext
设置了我的所有用户数据。HttpContext
是NULL
。1 个答案: