.NET Core中Kestrel根文件夹及IIS Express根文件夹查询方法
.NET Core服务器根文件夹相关问题解答
我来帮你逐一解答这两个问题:
1. .NET Core中Kestrel的根文件夹是什么?
Kestrel的默认根文件夹是项目的编译输出目录,也就是你构建项目后生成二进制文件、配置文件的地方。举个例子,如果是Debug模式编译,路径通常是:项目根目录/bin/Debug/netX.X/
这里的netX.X对应你使用的.NET Core版本,比如net6.0、net7.0。这个根目录是Kestrel查找静态文件、appsettings.json等资源的基础路径。
当然你也可以自定义这个路径,在Program.cs里通过UseContentRoot方法指定:
var builder = WebApplication.CreateBuilder(args); // 自定义根文件夹路径 builder.WebHost.UseContentRoot(@"D:\MyCustomContentRoot");
2. VS 2017创建Angular SPA .NET Core应用并通过IIS Express托管时,根文件夹是什么?如何查找?
用VS2017创建的Angular SPA .NET Core应用,通过IIS Express托管时,默认根文件夹同样是项目的编译输出目录(和Kestrel默认路径一致),也就是项目根目录/bin/Debug/netX.X/。
想要找到这个具体路径,有几个简单的方法:
- 通过VS输出窗口查看
启动调试后,打开VS的「输出」窗口(顶部菜单「视图」→「输出」),在输出内容里找到类似Content root path: D:\YourProject\bin\Debug\netcoreapp2.1的行,这就是当前IIS Express托管的根文件夹路径。 - 通过代码打印查看
在Program.cs里添加一行代码,启动时输出根路径:
启动调试后,在VS的「调试控制台」就能看到打印的路径。var app = builder.Build(); // 打印内容根路径到调试控制台 Console.WriteLine($"当前根文件夹路径:{app.Environment.ContentRootPath}"); // 其他中间件配置代码... app.Run(); - 查看IIS Express配置文件
VS会在项目的.vs/config目录下生成applicationhost.config文件,打开后找到对应项目的<site>节点,里面的physicalPath属性会标注IIS Express关联的路径,但要注意这个路径可能指向项目根目录,运行时实际使用的还是编译输出目录,所以优先推荐前两种方法。
内容的提问来源于stack exchange,提问作者Unknown developer
相关产品推荐
相关产品推荐

