asp.net core 发布时默认都是Production,有时候我们有些配置是只有在Development模式才会启用,但是有需要发布出来,怎么办呢。改一下web.config文件就可以了
代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
-- <aspNetCore processPath="dotnet" arguments=".\GD.SurveyDrawCG.ServicesHost.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="InProcess" />
++ <aspNetCore processPath="dotnet" arguments=".\ServicesHost.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout">
++ <environmentVariables>
++ <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
++ </environmentVariables>
++ </aspNetCore>
</system.webServer>
</location>
</configuration>
如果你发布的应用(asp.net core 2.2)在IIS托管下报以下错误:
An error occurred while starting the application.
.NET Core 4.6.27110.04 X86 v4.0.0.0 | Microsoft.AspNetCore.Hosting version 2.2.0-rtm-35687 | Microsoft Windows 10.0.19041 | Need help?
那你需要在web.config中去掉InProcess
1
2
-- <aspNetCore processPath="dotnet" arguments=".\GD.SurveyDrawCG.ServicesHost.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="InProcess" />
++ <aspNetCore processPath="dotnet" arguments=".\GD.SurveyDrawCG.ServicesHost.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
本文会经常更新,请阅读原文: https://dashenxian.github.io/post/Asp.net-core-%E5%8F%91%E5%B8%83%E5%88%B0iis%E7%9A%84Development%E7%8E%AF%E5%A2%83 ,以避免陈旧错误知识的误导,同时有更好的阅读体验。
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 小神仙 (包含链接: https://dashenxian.github.io ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 (125880321@qq.com) 。