ASP.NET Core 2 MVC新项目在解决方案资源管理器中未找到web.config文件求助
ASP.NET Core 2 MVC中找不到web.config的解决办法
嘿,别担心,这其实是ASP.NET Core和传统ASP.NET的核心差异之一,刚接触的话很容易困惑!
为什么默认新项目里没有web.config?
ASP.NET Core不再依赖传统的web.config作为主要配置文件了:
- 开发阶段,应用的配置主要通过
appsettings.json(以及环境变体如appsettings.Development.json)和代码配置(比如Startup.cs或Program.cs)来完成,涵盖连接字符串、日志级别、服务注册等几乎所有需求。 - 只有当你发布应用到IIS服务器时,系统才会自动生成一个
web.config文件,用来配置IIS的ASP.NET Core模块,让IIS能正确托管你的Core应用。
如果开发环境确实需要web.config怎么办?
虽然开发时很少用到,但如果有特殊需求(比如自定义IIS Express的行为),你可以手动添加:
- 右键你的项目 → 「添加」→ 「新建项」
- 在搜索框输入「Web配置文件」,选中后添加
- 可以参考以下基础模板内容(记得替换
YourProjectName为你的项目名称):
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" /> </handlers> <aspNetCore processPath="dotnet" arguments=".\YourProjectName.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" /> </system.webServer> </configuration>
开发时的替代配置方式
记住,开发阶段优先用appsettings.json来管理配置,比如数据库连接字符串的配置示例:
{ "ConnectionStrings": { "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=MyMvcDb;Trusted_Connection=True;MultipleActiveResultSets=true" }, "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*" }
总的来说,找不到web.config是正常现象,不用慌——开发用appsettings.json,发布到IIS时会自动生成所需的web配置文件。
内容的提问来源于stack exchange,提问作者s.k.paul




