前言
今天把一个.net core项目发布到IIS后,在满怀希望的想要看到效果时,突然出现了404错误,后来才发现是因为.NetCore 5.0 自带Swagger , 在发布项目时,通常会在代码中限制ASPNETCORE_ENVIRONMENT为Production时自动关闭Swagger,所以在运行时候,出现了404错误,如下为解决方案
解决方案
修改配置文件 Web.config:项目发布后默认为 Production 生产环境,可以通过修改 web.config 文件,将Production改成 Development 开发环境后就可以访问swagger了
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
</environmentVariables>
完整代码如下
<?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=".\OMS.Meeting.API.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess">
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
</environmentVariables>
</aspNetCore>
</system.webServer>
</location>
</configuration>
运行效果