![](/img/trans.png)
[英]ASP.NET Core deployed on IIS gives error: HTTP Error 403.14 - Forbidden
[英]How to solve the HTTP Error 403.14 - Forbidden in Asp.Net Core API?
我正在開發 Asp.Net Core 3.1 API。它運行良好,我正在 IIS 上部署它,它給了我以下錯誤。
HTTP 錯誤 403.14 - 禁止訪問
我已經找到了問題的根本原因,我將我的觀察放在下面。
這是我原來的web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\EngageAPI.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
</system.webServer>
</location>
</configuration>
因此,當我使用 visual studio 2019 在本地運行該項目時,它會將 web.config 的內容更改為下面提到的內容。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess">
<environmentVariables>
<environmentVariable name="COMPLUS_ForceENC" value="1" />
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
</environmentVariables>
</aspNetCore>
</system.webServer>
</location>
</configuration>
因此,當我在發布解決方案配置中發布應用程序時,它會生成具有最新更改的 web.config。 當我使用 IIS 中的此發布文件夾部署 API 並運行該應用程序時,它會出現403.14
錯誤。
為了解決這個問題,我手動將舊的 web.config 內容復制到 IIS 虛擬目錄 web.config。 並且我能夠成功運行該應用程序。
所以從中學習是,如果我們對 web.config 進行任何更改,我們需要以不同的方式處理它,但我建議不要對 web.config 進行任何更改,而是使用 appsettings.json 進行配置。
所以我在這里有三個問題。
更新:
正如@ScareCrow 在他的回答中所建議的那樣,我已經進行了必要的更改,並且開始出現以下錯誤。
HTTP 錯誤 500.0 - ANCM 進程內處理程序加載失敗
事件查看器日志:
日志名稱:應用程序來源:IIS AspNetCore Module V2 日期:7/15/2020 3:29:03 AM 事件 ID:1031 任務類別:無級別:錯誤關鍵字:經典用戶:N/A 計算機:SUSIAALGCBWSXT1.FCStone.com 說明: 應用程序 'D:\Octopus\Applications\Beta\ISOXMLValidationApi\1.0.0.9' 無法啟動。 異常消息:在“D:\Octopus\Applications\Beta\ISOXMLValidationApi\1.0.0.9%LAUNCHER_PATH%.exe”中找不到可執行文件事件 Xml:
1031 2 0 0x80000000000000 1090650 應用程序 SUSIAALGCBWSXT1.FCStone.com 應用程序 'D:\Octopus\Applications\Beta\ISOXMLValidationApi\1.0.0.9' 無法啟動。 異常消息:在“D:\Octopus\Applications\Beta\ISOXMLValidationApi\1.0.0.9%LAUNCHER_PATH%.exe”中找不到可執行文件進程 ID:19916。文件版本:13.1.20142.5。 描述:IIS ASP.NET 核心模塊 V2。 提交:844a82e37cae48af2ab2ee4f39b41283e6bb4f0e
也許問題與“AS.NETCORE_ENVIRONMENT”變量設置有關。 我們必須在 IIS 中提供此信息。
其實可以在IIS的網站上設置。
打開“Inte.net 信息服務 (IIS) 管理器。
Go 到你要設置環境變量的網址。 找到“配置編輯器”。
在配置編輯器的“部分”部分,左側下拉列表中的 select system.webServer/aspNetCore
select ApplicationHost.config
。
單擊environmentVariables
然后您將獲得當前環境變量。 添加一個新的環境變量。
name
將為AS.NETCORE_ENVIRONMENT
, value
將為Development
[staging/Prod]。
關閉window,重啟網站。
試試上面的方法。 快樂編碼!
必須在發布過程中替換%Launcher_PATH%
和%LAUNCHER_ARGS%
。
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess">
請查看此答案以獲取更多詳細信息
我正在開發 Asp.Net Core 3.1 API。 它運行良好,我將它部署在 IIS 上,它給了我以下錯誤。
HTTP 錯誤 403.14 - 禁止
我已經找到了問題的根本原因,我將我的觀察結果放在下面。
這是我原來的 web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\EngageAPI.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
</system.webServer>
</location>
</configuration>
因此,當我使用 Visual Studio 2019 在本地運行項目時,它會將 web.config 的內容更改為下面提到的內容。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess">
<environmentVariables>
<environmentVariable name="COMPLUS_ForceENC" value="1" />
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
</environmentVariables>
</aspNetCore>
</system.webServer>
</location>
</configuration>
因此,當我在發布解決方案配置中發布應用程序時,它會生成具有最新更改的 web.config。 當我使用 IIS 中的此發布文件夾部署 API 並運行應用程序時,它會給出403.14
錯誤。
為了解決這個問題,我手動將舊的 web.config 內容復制到 IIS 虛擬目錄 web.config。 並且我能夠成功運行該應用程序。
所以從中學到的是,如果我們對 web.config 進行任何更改,我們需要以不同的方式處理它,但我建議不要在 web.config 中進行任何更改,而是使用 appsettings.Z466DEEC76ECDF25FCA6D3855ZZ 進行配置71F6
所以我在這里有三個問題。
更新:
正如@ScareCrow 在他的回答中所建議的那樣,我已經進行了必要的更改,並且我已經開始收到以下錯誤。
HTTP 錯誤 500.0 - ANCM 進程內處理程序加載失敗
事件查看器日志:
日志名稱:應用程序源:IIS AspNetCore Module V2 日期:2020 年 7 月 15 日凌晨 3:29:03 事件 ID:1031 任務類別:無級別:錯誤關鍵字:經典用戶:N/A 計算機:SUSIAALGCBWSXT1.FCStone.Z4D236D9A2D102C5FE6AD1C5DA4Z 描述: 應用程序 'D:\Octopus\Applications\Beta\ISOXMLValidationApi\1.0.0.9' 無法啟動。 異常消息:在“D:\Octopus\Applications\Beta\ISOXMLValidationApi\1.0.0.9%LAUNCHER_PATH%.exe”事件 Xml 中找不到可執行文件:
1031 2 0 0x80000000000000 1090650 應用程序 SUSIAALGCBWSXT1.FCStone.com 應用程序 'D:\Octopus\Applications\Beta\ISOXMLValidationApi\1.0.0.9' 無法啟動。 異常消息:在“D:\Octopus\Applications\Beta\ISOXMLValidationApi\1.0.0.9%LAUNCHER_PATH%.exe”中找不到可執行文件進程 ID:19916。文件版本:13.1.20142.5。 說明: IIS ASP.NET 核心模塊V2。 提交:844a82e37cae48af2ab2ee4f39b41283e6bb4f0e
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.