[英]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.