按照執行步驟依次介紹如何將一個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>