You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否将.NET 7 Blazor WASM(含客户端与服务端API)部署到IIS子应用?

把.NET 7 Blazor WebAssembly(含客户端+服务端)部署到IIS现有站点子应用的方法

完全可以部署到子应用,按以下步骤操作即可:

一、调整项目配置

客户端项目

  • 打开wwwroot/index.html,将<base href="/" />修改为对应子应用的路径:<base href="/Application/" />
  • 在Program.cs中,确保API请求的基地址指向子应用下的API路径,示例代码:
    builder.Services.AddScoped(sp => new HttpClient { 
        BaseAddress = new Uri(builder.HostEnvironment.BaseAddress + "api/") 
    });
    
    也可以直接指定完整路径:new Uri("https://example.com/Application/api/")

服务端项目(托管模式下)

如果是用Blazor WebAssembly托管模板创建的项目,在服务端的Program.cs中配置路径前缀:

// 为API控制器添加子应用路径前缀
app.MapControllers().WithMetadata(new RoutePrefixMetadata("Application/api"));
// 配置Fallback路由,指向子应用的index.html
app.MapFallbackToFile("Application/{*path:nonfile}", "index.html");

或者全局设置应用的路径基址:

app.UsePathBase("/Application");

二、发布项目

  • 右键解决方案选择发布,目标类型选文件夹,指定发布目录。
  • 托管模式下直接发布服务端项目即可(会自动打包客户端内容);如果是客户端、服务端分开的项目,将客户端发布的wwwroot内容覆盖到服务端发布目录的wwwroot文件夹中。

三、IIS配置

  • 打开IIS管理器,找到目标现有站点,右键选择添加应用程序:
    • 别名填写Application(对应子应用的URL路径)
    • 物理路径选择刚才的项目发布目录
    • 应用程序池选择.NET 7对应池(没有则新建:.NET CLR版本选v7.0,模式用集成;若为纯客户端项目,选无托管代码)
  • 确保子应用的身份验证设置与主站点一致,比如开启匿名身份验证。
  • 在子应用的web.config中添加Blazor路由重写规则,避免页面刷新出现404:
    <rewrite>
      <rules>
        <rule name="Blazor Routes" stopProcessing="true">
          <match url=".*" />
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Rewrite" url="index.html" />
        </rule>
      </rules>
    </rewrite>
    

四、测试验证

  • 访问https://example.com/Application,检查客户端页面是否正常加载。
  • 测试API接口(如https://example.com/Application/api/weatherforecast),确认能正常返回数据。

常见问题排查

  • 404错误:检查base href是否正确、IIS物理路径是否指向发布目录、重写规则是否配置到位。
  • API请求失败:核对HttpClient的BaseAddress是否指向子应用API路径、服务端路由前缀是否配置正确。
  • 权限问题:给应用程序池的身份分配发布目录的读写权限。

内容的提问来源于stack exchange,提问作者Jim S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 03:10:18