今天上午基于.NET core做了一個簡單的Web Api的Demo,練習一下IIS部署,本以為很簡單,沒想到遇到了很多坑,折騰了大半天才部署成功,簡單記錄一下,以供大家參考。
1、發布項目
2、下載并安裝AspNetCoreModuleV2模塊
下載地址:https://dotnet.microsoft.com/download/dotnet-core/thank-you/runtime-aspnetcore-2.2.2-windows-hosting-bundle-installer
下載頁面
3、當打開IIS面板,在模塊里有AspNetCoreModuleV2時表示安裝成功
4、添加網站并配置發布的路徑、ip、端口等信息
5、將應用程序池.NET CLR版本選擇為無托管代碼
6、訪問時如果報500錯誤,則先打開發布文件夾里的web.cinfig文件,修改stdoutLogEnabled="true",根據錯誤日志定位具體錯誤
7、常見問題——數據庫連接失敗,可能是數據庫連接字符串有問題
例如錯誤提示:You shouldn't use localdb when hosting in IIS. LocalDB is launched in the context of the user running it.(在IIS中托管時不應該使用localdb。LocalDB是在運行它的用戶的上下文中啟動的。)
修改數據庫連接字符串:
正確配置:"shopConnectionString": "server=.;database=ShopDB;uid=sa;pwd=123"
錯誤配置:"Server=PS20190608PCTW;DataBase=ShopDB;Trusted_Connection=True;"(本地可以訪問,發布到IIS 不能訪問)
8、修改完數據庫連接字符串后再次訪問成功