将ASP.NET Core WebApi项目部署到IIS中
按照执行步骤依次介绍如何将一个ASP.NET Core WebApi(MVC也类似)项目发布并部署到IIS上成功运行。
1. 发布程序
来到开发好的项目上右键 → “发布”。在“选取发布目标”中选择“IIS、FTP等”或者“文件夹”后点击右下角“创建配置文件”。
点击“下一页”后设置具体的生成细节,值得注意的是“部署模式”中有两项供选择,分别是“框架依赖”和“独立”。
选择“框架依赖”后,我们部署的项目是依赖于我们发布的服务器上的.net core版本的,所以只有当服务器上的.net core版本等于或高于项目使用的.net core版本,生成的项目在服务器上才可以正常运行。所以在这种部署模式下,生成的项目发布包会较小,因为只需要打包应用自身及其相关依赖就好了。
选择“独立”部署模式后,会额外将应用使用的.net core组件都一起打包到发布包中,这样应用就不会依赖服务器上共享的.net core组件了,从而能够控制应用自身的运行时版本。当然缺点就是发布的包会变大。
以上设置完成之后点击“保存”并“发布”即可。
2. 安装.NET Core捆绑包
若待部署的IIS服务器上尚未部署过任何asp.net core web应用,需要首先下载.net core的托管捆绑包,可以访问:https://dotnet.microsoft.com/download/dotnet-core/3.1下载最新版本的Bundle安装包。
安装完成之后重启服务器或者使用管理员权限在命令行中执行以下两个命令。
1 net stop was /y 2 net start w3svc
3. 添加新的应用程序池
打开IIS管理器,为将要部署的asp.net core应用新建一个应用程序池。CLR版本选择“无托管代码”,管道选择“集成”即可。
4.添加网站
添加网站的方法和以前部署ASP.NET应用没啥区别,就是我们在选择应用程序池时需要选择刚刚为asp.net core项目新建的应用程序池。添加完成后启动网站,asp.net core webapi应用便部署完成了。
5.解决405.0错误
若我们部署的asp.net core webapi应用接受“PUT”或“DELETE”等请求时,有可能会得到“405.0 Method Not Allowed”的错误码信息,解决这个问题可以在部署的发布包中的web.config文件中添加下面的配置。
<system.webServer> <modules runAllManagedModulesForAllRequests="false"> <remove name="WebDAVModule" /> </modules> </system.webServer>