Viv*_*ndi 11 iis asp.net-core identityserver4 blazor-server-side .net-core-3.1
我有两个应用程序,都运行在同一台 Windows 机器上。一个应用程序是 IdentityServer4,另一个是我自己的 Web 应用程序(服务器端 Blazor 应用程序)。
这两个 Web 应用程序都是使用 .NET Core 3.1 构建的。
当我导航到我的 Web 应用程序时,我首先被重定向到我的 IdentityServer4 应用程序。我登录,然后我被重定向回我的网络应用程序。
登录成功,因为IdentitServer的日志没有错误。此外,我claim在 Blazor 网页上看到了某个值。我这显示claim通过CascadingAuthenticationState我的Blazor页。通过那条路径,一切正常。
但是,每当我尝试HttpContext在我的“代码隐藏”文件中获取登录用户时,我都会返回一个 Null 引用。例如:
public UserService(IHttpContextAccessor httpContextAccessor)
{
// HttpClient is NULL...
var httpCtx = _httpContextAccessor.HttpClient;
}
Run Code Online (Sandbox Code Playgroud)
奇怪的是,当我在 Visual Studio 中本地运行我的应用程序时,一切正常。当我在 Visual Studio 中调试时,我看到HttpContext设置了我的所有用户数据。
但是,出于某种原因HttpContext,NULL当我从 IIS 运行应用程序时。
我该如何解决这个问题?
Den*_* W. 20
如果在部署到 Azure 应用服务或 IIS后发生 HttpContext 空引用异常,则您可能忘记启用 WebSockets。
这是交易:
如果应用程序在带有 IIS 的 Windows 上运行:必须启用 WebSockets。
请参阅IIS/IIS Express 支持部分。
似乎这是你必须遵循的先决条件。在处理了相同的问题并决定从 Visual Studio 中将我的应用程序发布到 Azure 后,我最近才发现了这一点。在我这样做之后,Visual Studio 给了我一个很好的警告,告诉我在 Azure 应用服务上启用 WebSockets 协议。
| 归档时间: |
|
| 查看次数: |
2111 次 |
| 最近记录: |