ASP.NET Core 7 Razor Pages項(xiàng)目發(fā)布到IIS的詳細(xì)過程
目錄
- 項(xiàng)目環(huán)境:
- 發(fā)布過程:
- 發(fā)布過程遇到的問題及解決方法:
- 解決辦法:
項(xiàng)目環(huán)境:
VS2022、.net7.0、SqlExpress10、IIS express10
發(fā)布過程:
- 在VS2022中,右擊項(xiàng)目名稱,選擇“發(fā)布”選項(xiàng);
- 發(fā)布目標(biāo)選擇“文件夾”-->指定一個(gè)發(fā)布的目標(biāo)文件夾;
- 在IIS中新建一個(gè)站點(diǎn),物理文件夾指定到剛才發(fā)布的文件夾;
- 啟動(dòng)網(wǎng)站就OK了。
發(fā)布過程遇到的問題及解決方法:
問題1:涉及到數(shù)據(jù)庫的頁面都顯示錯(cuò)誤內(nèi)容。
原因:項(xiàng)目處于發(fā)布狀態(tài),隱藏了敏感信息;
解決辦法:根據(jù)提示內(nèi)容新建一個(gè)windows的環(huán)境變量后,就能看到錯(cuò)誤內(nèi)容了:
變量名:ASPNETCORE_ENVIRONMENT
變量值:Development
問題2:顯示錯(cuò)誤內(nèi)容后提示無法連接到數(shù)據(jù)庫
錯(cuò)誤內(nèi)容:SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server.
原因:因?yàn)轫?xiàng)目使用的是MsSqlExpress數(shù)據(jù)庫,MsSqlExpress數(shù)據(jù)庫默認(rèn)是沒有打開遠(yuǎn)程訪問的網(wǎng)絡(luò)功能的;
解決辦法:打開SQLServerManager10.msc,一般在C:\Windows\SysWOW64目錄下,因?yàn)槲业腅XPRESS是10版本,所以后面是SQLServerManager10.msc,不同版本不一樣。選擇SQL SERVER網(wǎng)絡(luò)配置,右擊啟動(dòng)TCP/IP協(xié)議,右擊-->屬性-->IP,將TCP動(dòng)態(tài)端口設(shè)置為0,TCP端口設(shè)置為1433,重啟SQL EXPRESS服務(wù)。
問題3:Microsoft.Data.SqlClient.SqlException 證書鏈?zhǔn)怯刹皇苄湃蔚念C發(fā)機(jī)構(gòu)頒發(fā)的;
解決辦法:
直接在“數(shù)據(jù)庫連接字符串最后面”增加證書信任的配置。;TrustServerCertificate=true
例如:下面配置標(biāo)紅部分在你的代碼配置中增加或者修改
<add name="ConnectionString" connectionString="Server=.;Initial Catalog=QDJYCZNZZ;Persist Security Info=False;User ID=sa;Password=123456;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=300;" providerName="System.Data.SqlClient" />
問題4:解決IIS APPPOOL\DefaultAppPool登錄失敗的問題
問題描述:用戶 'IIS APPPOOL\aikang' 登錄失敗。在VS里面打開能正常運(yùn)行,在IIS里面打開就總是提示這個(gè)錯(cuò)誤;
解決辦法:這個(gè)跟IIS的用戶權(quán)限有關(guān)。打開IIS管理器,選擇應(yīng)用程序池,然后右擊你站點(diǎn)的應(yīng)用程序池-->高級(jí)設(shè)置,更改“進(jìn)程模型”下的標(biāo)識(shí)為“LocalSystem”。
到此這篇關(guān)于ASP.NET Core 7 Razor Pages項(xiàng)目發(fā)布到IIS的文章就介紹到這了,更多相關(guān)ASP.NET Core 發(fā)布到IIS內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!
