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