基于ABP架構(gòu)開(kāi)發(fā)的.Net Core項(xiàng)目部署到IIS問(wèn)題匯總
在ABP官網(wǎng)創(chuàng)建一個(gè).Net Core項(xiàng)目編譯完成
1、 發(fā)布網(wǎng)站
2、 IIS新建站點(diǎn)
目錄指向發(fā)布的目錄
3、安裝WindowsHosting
IIS安裝服務(wù)器上安裝DotNetCore.X.X.X-WindowsHosting安裝成功后重啟IIS服務(wù)器。根據(jù)版本選擇下載
下載地址:https://www.microsoft.com/net/download/windows
如果沒(méi)有安裝SDK 需要安裝.Net Core SDK
4、 修改application pool應(yīng)用程序池 選擇無(wú)托管代碼
5、 瀏覽程序
報(bào)錯(cuò)如下:
An error occurred while starting the application.
看不到詳細(xì)信息需要修改web.config 查看詳細(xì)信息 將stdoutLogEnabled的修改為 true,并在應(yīng)用程序根目錄添加 logs 文件夾
<aspNetCore processPath="dotnet" arguments=".\tzky.saas.Web.Host.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false" />
再瀏覽網(wǎng)站,當(dāng)然還是報(bào)錯(cuò),現(xiàn)在到logs目錄查看報(bào)錯(cuò)詳細(xì)信息
錯(cuò)誤信息:用戶(hù) 'IIS APPPOOL\saasapp' 登錄失敗
6、錯(cuò)誤診斷與解決
錯(cuò)誤分析很顯然是應(yīng)用程序權(quán)限問(wèn)題,只要到application pool應(yīng)用池-> 高級(jí) -> 標(biāo)識(shí) 將原來(lái)ApplicationPoolIdentity改為對(duì)數(shù)據(jù)庫(kù)有訪(fǎng)問(wèn)權(quán)限和網(wǎng)站文件有讀寫(xiě)權(quán)限的Windows用戶(hù)(這里需要確定這個(gè)Windows用戶(hù)可以登錄數(shù)據(jù)庫(kù),不行可以在數(shù)據(jù)庫(kù)安全設(shè)置添加。當(dāng)然你也可以將數(shù)據(jù)庫(kù)連接字符竄改為數(shù)據(jù)庫(kù)用戶(hù)和密碼訪(fǎng)問(wèn),比如:sa),然后重啟應(yīng)用池,重啟網(wǎng)站瀏覽
啟動(dòng)運(yùn)行成功
7、總結(jié)
.Net Core 和 傳統(tǒng)的.Net 程序IIS部署主要注意以下幾點(diǎn):
安裝DotNetCore.X.X.X-WindowsHosting和.Net Core SDK應(yīng)用池配置為無(wú)托管代碼(網(wǎng)上解釋?zhuān)篈SP.NET Core不再是由IIS工作進(jìn)程(w3wp.exe)托管,而是使用自托管Web服務(wù)器(Kestrel)運(yùn)行,IIS則是作為反向代理的角色轉(zhuǎn)發(fā)請(qǐng)求到Kestrel不同端口的ASP.NET Core程序中,隨后就將接收到的請(qǐng)求推送至中間件管道中去,處理完你的請(qǐng)求和相關(guān)業(yè)務(wù)邏輯之后再將HTTP響應(yīng)數(shù)據(jù)重新回寫(xiě)到IIS中,最終轉(zhuǎn)達(dá)到不同的客戶(hù)端(瀏覽器,APP,客戶(hù)端等)。而配置文件和過(guò)程都會(huì)由些許調(diào)整,中間最重要的角色便是AspNetCoreModule,它是其中一個(gè)的IIS模塊,請(qǐng)求進(jìn)入到IIS之后便立即由它轉(zhuǎn)發(fā),并迅速重定向到ASP.NET Core項(xiàng)目中,所以這時(shí)候我們無(wú)需設(shè)置應(yīng)用程序池來(lái)托管我們的代碼,它只負(fù)責(zé)轉(zhuǎn)發(fā)請(qǐng)求而已)如果需要讀寫(xiě)根目錄權(quán)限,要更改應(yīng)用池 ApplicationPoolIdentity網(wǎng)站報(bào)錯(cuò),通過(guò)修改web.config 啟用錯(cuò)誤日志查看詳細(xì)錯(cuò)誤信息
官網(wǎng)配置鏈接:https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/iis/index?tabs=aspnetcore2x#common-errors
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- IIS上部署你的ASP.NET?Core?Web?Api項(xiàng)目及Swagger(圖文)
- Jenkins編譯.NET?Core、.NET?Framework項(xiàng)目并遠(yuǎn)程部署到IIS
- 詳解IIS在ASP.NET?Core下的兩種部署模式
- IIS部署ASP.NET?Core項(xiàng)目及常見(jiàn)問(wèn)題總結(jié)
- 在IIS上部署ASP.NET Core Web API的方法步驟
- 如何在ASP.NET Core應(yīng)用程序運(yùn)行Vue并且部署在IIS上詳解
- 在IIS上部署ASP.NET Core項(xiàng)目的圖文方法
- .Net Core部署IIS的最細(xì)步驟
相關(guān)文章
asp.net 關(guān)于==?:和if()else()條件判斷等效例子
關(guān)于==?:和if()else() 等效例子2010-03-03HTTP協(xié)議下用Web Service上傳大文件的解決方案
HTTP協(xié)議下用Web Service上傳大文件的解決方案...2007-04-04Datalist控件使用存儲(chǔ)過(guò)程來(lái)分頁(yè)實(shí)現(xiàn)代碼
.net使用過(guò)程中,數(shù)據(jù)多的時(shí)候需要分頁(yè),本文將介紹如何使用存儲(chǔ)過(guò)程來(lái)分頁(yè),需要的朋友可以了解下2012-12-12詳解在DevExpress程序中使用TreeList控件以及節(jié)點(diǎn)查詢(xún)的處理
本篇文章主要介紹基于DevExpress的TreeList控件使用以及使用SearchControl對(duì)節(jié)點(diǎn)進(jìn)行查詢(xún)的操作,具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧2016-12-12ASP.NET生成樹(shù)形顯示的GridView實(shí)現(xiàn)思路
生成樹(shù)形結(jié)構(gòu)的表格數(shù)據(jù)(EasyUI也有TreeGrid,此處只是提供一個(gè)思路),可以擴(kuò)展單擊展開(kāi)/收縮節(jié)點(diǎn),喜歡的朋友可以了解下啊,或許本文對(duì)你學(xué)習(xí)GridView有所幫助2013-02-02Aspnetpager對(duì)GridView分頁(yè)并順利導(dǎo)出Excel
這篇文章主要介紹了Aspnetpager對(duì)GridView分頁(yè)并順利導(dǎo)出Excel的相關(guān)資料,需要的朋友可以參考下2016-04-04Asp.net 連接MySQL的實(shí)現(xiàn)代碼[]
ASP.NET連接MySQL需要一個(gè)組件(.net本身不提供訪(fǎng)問(wèn)MySQL的驅(qū)動(dòng))MySQL.Data.Dll,此為官方提供(純C#開(kāi)發(fā),開(kāi)源噢),有多個(gè)版本選擇,采用的數(shù)據(jù)訪(fǎng)問(wèn)模式為ADO.NET,跟asp.net訪(fǎng)問(wèn)sqlserver很像,非常簡(jiǎn)單。2009-08-08