繁体   English   中英

将 Blazor 应用程序部署到 IIS 子应用程序

[英]Deploy Blazor app to a IIS sub application

我正在尝试在 /app 下部署我的 Blazor 服务器应用程序,这是 IIS 中的子应用程序。 我在网上阅读了几个需要设置以下内容的地方:

Startup.cs | app.UsePathBase("/app")

_Host.cshtml | <base href="~/app/" />

但是当我运行它时,我收到以下错误:

blazor.server.js:15 [2020-05-26T16:16:11.796Z] Error: The circuit failed to initialize.
e.log @ blazor.server.js:15
blazor.server.js:1 [2020-05-26T16:16:11.798Z] Information: Connection disconnected.
blazor.server.js:1 Uncaught (in promise) Error: Invocation canceled due to the underlying connection being closed.
    at e.connectionClosed (blazor.server.js:1)
    at e.connection.onclose (blazor.server.js:1)
    at e.stopConnection (blazor.server.js:1)
    at e.transport.onclose (blazor.server.js:1)
    at e.close (blazor.server.js:1)
    at e.stop (blazor.server.js:1)
    at e.<anonymous> (blazor.server.js:1)
    at blazor.server.js:1
    at Object.next (blazor.server.js:1)
    at a (blazor.server.js:1)

如果我更改为(不带斜杠)

_Host.cshtml | <base href="~/app" />

该应用程序运行但在 URL 之前没有任何 /app (据我所知没有变化)。

在某些示例中,我看到他们更改了 BlazorHub 路径,但我无法使其正常工作。 这背后的原因是能够将应用程序和登录页面作为单独的 IIS 站点托管。

这对我们有用: <base href="/app/" />

注意尾部的斜杠,这很重要。

它记录在官方 Blazor 文档中: https://docs.microsoft.com/en-us/aspnet/core/blazor/host-and-deploy/?view=aspnetcore-3.1&tabs=visual-studio#app-基本路径

在 _host.chtml 中将 base 设置为

<base href="~/" />

不要在管道中添加app.UsePathBase("/app")

在 IIS 站点菜单中添加应用程序。 将其绑定到您的应用程序所在的目录。

为该子应用设置新的应用程序池(无托管代码)

要共享身份 Cookie,请添加

services.AddDataProtection()
.PersistKeysToFileSystem(new DirectoryInfo(@"D:\tmp\Keys"))
.ProtectKeysWithDpapi(protectToLocalMachine:true)
.SetApplicationName("SharedCookieApp");

services.ConfigureApplicationCookie(options =>
          {
              options.Cookie.Path = "/";

          });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM