今天上午基于.NET core做了一個(gè)簡(jiǎn)單的Web Api的Demo,練習(xí)一下IIS部署,本以為很簡(jiǎn)單,沒(méi)想到遇到了很多坑,折騰了大半天才部署成功,簡(jiǎn)單記錄一下,以供大家參考。
1、發(fā)布項(xiàng)目

2、下載并安裝AspNetCoreModuleV2模塊
下載地址:https://dotnet.microsoft.com/download/dotnet-core/thank-you/runtime-aspnetcore-2.2.2-windows-hosting-bundle-installer

下載頁(yè)面
3、當(dāng)打開(kāi)IIS面板,在模塊里有AspNetCoreModuleV2時(shí)表示安裝成功


4、添加網(wǎng)站并配置發(fā)布的路徑、ip、端口等信息

5、將應(yīng)用程序池.NET CLR版本選擇為無(wú)托管代碼

6、訪問(wèn)時(shí)如果報(bào)500錯(cuò)誤,則先打開(kāi)發(fā)布文件夾里的web.cinfig文件,修改stdoutLogEnabled="true",根據(jù)錯(cuò)誤日志定位具體錯(cuò)誤


7、常見(jiàn)問(wèn)題——數(shù)據(jù)庫(kù)連接失敗,可能是數(shù)據(jù)庫(kù)連接字符串有問(wèn)題
例如錯(cuò)誤提示:You shouldn't use localdb when hosting in IIS. LocalDB is launched in the context of the user running it.(在IIS中托管時(shí)不應(yīng)該使用localdb。LocalDB是在運(yùn)行它的用戶的上下文中啟動(dòng)的。)
修改數(shù)據(jù)庫(kù)連接字符串:
正確配置:"shopConnectionString": "server=.;database=ShopDB;uid=sa;pwd=123"
錯(cuò)誤配置:"Server=PS20190608PCTW;DataBase=ShopDB;Trusted_Connection=True;"(本地可以訪問(wèn),發(fā)布到IIS 不能訪問(wèn))

8、修改完數(shù)據(jù)庫(kù)連接字符串后再次訪問(wèn)成功
