VS2019下.net core的项目发布到IIS后、无法打开页面,显示如下:
在IIS对应的网站点"模块“,完全点不开,报错。按网上一些说法是权限问题,一一排除,皆不行。后来发现是要安装Asp.net core Module,
注:以下是.net core3.1的截图,若是.net5则要下载相应的版本
下载安装完成后,再进入IIS, 在对应的网站看”模块“不报错了,可以正常进入了,而且能看到AspNetCoreModuleV2了
最终发布到IIS的asp.net core网站也可以正常打开了
关于访问
以Swagger的形式发布,在IIS浏览时只会出这个地址http://localhost:8031请手工加上api/index.html,即 http://localhost:8031/api/index.html就可以浏览了
也可以用http://127.0.0.1:8031/api/index.html访问swagger 的api界面
Windows Server2016如果安装了WebDav组件会导致.net core使用put、Delete调用时出现405的错误
用服务器或nginx配置了处理跨域,GET、POST的跨域问题解决了,但PUT、DELETE仍然显示跨域,也要用以下办法处理。
解决办法,修改后发布的web.config文件,移除WebDav模块,请参见以下加粗字体
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<modules>
<remove name="WebDAVModule" />
</modules>
<handlers>
<remove name="WebDAV" />
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\AllWork.Web.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
</system.webServer>
</location>
</configuration>
<!--ProjectGuid: 54F2CD82-89C4-43AD-9331-423ED81CD577-->
发布IIS若是域用户时要带上域的前缀,否则