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

.NET Core站点部署后指向开发服务器wwwroot的问题求助

解决.NET Core站点部署到IIS时找不到wwwroot目录的问题

问题根源

发布生成的staticwebassets.runtime.json文件中硬编码了开发服务器上的wwwroot绝对路径,导致生产IIS环境尝试访问仅存在于开发机的目录,触发DirectoryNotFoundException。

解决方案

1. 仅在开发环境启用静态Web资产加载

修改Program.cs,限制静态Web资产仅在开发环境生效,避免生产环境读取错误的路径配置:

var builder = WebApplication.CreateBuilder(args);

// 仅开发环境加载静态Web资产
if (builder.Environment.IsDevelopment())
{
    builder.WebHost.UseStaticWebAssets();
}

// 后续的服务注册、中间件配置等代码...

var app = builder.Build();

// ...其他中间件设置
app.Run();

2. 确保wwwroot内容被正确发布到输出目录

在项目的.csproj文件中添加或确认以下配置,保证wwwroot下的所有文件都会被复制到发布目录:

<ItemGroup>
    <Content Include="wwwroot/**/*" CopyToPublishDirectory="PreserveNewest" />
</ItemGroup>

该配置会自动同步wwwroot的所有文件到发布目标路径,确保生产环境能访问到静态资源目录。

3. 清理并重新发布

  • 删除开发服务器上的C:\temp\stagingPublish目录,避免残留旧的配置文件
  • 重新执行发布操作,生成干净的发布包后再复制到生产IIS服务器

4. 验证IIS部署配置

  • 确认IIS站点的物理路径指向生产服务器上的发布目录
  • 确保应用程序池的.NET CLR版本设置为无托管代码,并选择对应.NET 6.0的运行时版本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 10:37:36