【问题标题】:Hosted Blazor wasm App base path works locally, but not as an IIS Sub App托管的 Blazor wasm 应用程序基本路径在本地工作,但不能作为 IIS 子应用程序
【发布时间】:2021-12-24 20:25:43
【问题描述】:

我有一个 ASP.NET 4 站点,我的目标是创建一个新的托管 blazor Web 程序集应用程序,该应用程序在作为应用程序运行的 ASP.NET 4 站点的子目录中运行。我在本地创建了 blazor 应用程序并对其进行了测试,一切正常。我遵循了 App 基本路径文档中的所有说明。我什至设置了 --pathbase 命令 arg,并在 launchSettings.json 文件中将启动 url 更改为 app。从 VS 2022 和命令提示符开始,它在我的本地机器上运行良好。

然后我在 IIS 中获取现有站点并添加一个子应用程序。我更新了应用程序池以不使用托管代码。我在我的 blazor 应用程序中发布了服务器项目,并将其移动到从 IIS 子应用程序引用的目录中。 blazor webassembly 运行良好。站点加载,但没有任何服务器应用程序(控制器、api 端点)工作。源看起来像是在引用 app/fetchdata,但端点不存在。它返回 404 错误。此外,当您从浏览器 url 加载应用程序子目录(如 app/counter)中的任何辅助 URL 时,它会失败。当您从应用程序内导航时,它会起作用,但当您链接到页面时则不起作用。

客户

wwwroot/index.html

    <base href="/app/" />

launchSettings.json

      "commandName": "Project",
      "commandLineArgs": "--pathbase=/app",
      "dotnetRunMessages": true,
      "launchBrowser": true,
      "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}",
      "applicationUrl": "https://localhost:7240;http://localhost:5240",
      "launchUrl": "app",

服务器

Program.cs

var app = builder.Build();
app.UsePathBase("/app");

launchSettings.json

        "commandName": "Project",
        "dotnetRunMessages": true,
        "launchBrowser": true,
        "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}",
        "applicationUrl": "https://localhost:7240;http://localhost:5240",
        "launchUrl": "app",

【问题讨论】:

    标签: .net blazor-webassembly


    【解决方案1】:

    我让它工作了。原来我在影响子应用程序的 ASP.NET 4 根站点中有一个重写规则。从重写规则中排除子应用解决了问题。

    【讨论】:

      猜你喜欢
      • 2021-09-20
      • 1970-01-01
      • 1970-01-01
      • 2021-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-25
      • 2016-07-27
      相关资源
      最近更新 更多