Blazor Server HttpContext在本地IIS上发布时为空



在我的Blazor服务器应用程序中,我在一个组件中有这个代码,需要从Request读取cookie(所以我会在渲染之前读取它们):

[Inject] private IHttpContextAccessor HttpCxAccessor { get; set; }
...
protected override void OnInitialized()
{
var context = HttpCxAccessor.HttpContext;
// context is null when on Local IIS

代码工作时,我运行它从VS (IISExpress),但当我发布它在本地IIS,HttpContextnull

您不应该在Blazor服务器中使用HttpContextAccessor,因为Blazor服务器在。net core管道之外工作,基本上无法保证您将能够访问所需的HttpContext数量,以获取更多信息,您可以参考此问题。然而,如果你必须使用HttpContext,那么你必须在渲染_Host.cshtml时从HttpContext中获得所需的值,并将其保存在一个变量中,并在程序其余部分的组件中以级联参数的形式使用该变量。

这里有一个实现的例子。

相关内容

  • 没有找到相关文章

最新更新