簡體   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