viv*_*una 6 c# iis web-deployment asp.net-core asp.net-core-webapi
我正在开发 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>
Run Code Online (Sandbox Code Playgroud)
因此,当我使用 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>
Run Code Online (Sandbox Code Playgroud)
因此,当我在发布解决方案配置中发布应用程序时,它会生成包含最新更改的 web.config。当我在 IIS 中使用此发布文件夹部署 API 并运行应用程序时,出现错误403.14。
为了解决这个问题,我手动将旧的 web.config 内容复制到 IIS 虚拟目录 web.config。我能够成功运行该应用程序。
因此,从中学到的是,如果我们对 web.config 进行任何更改,我们需要以不同的方式处理它,但我建议不要在 web.config 中进行任何更改,而是使用 appsettings.json 进行配置。
所以我在这里有三个问题。
更新:
正如 @ScareCrow 在他的回答中所建议的,我已经进行了所需的更改,并且开始出现以下错误。
HTTP 错误 500.0 - ANCM 进程内处理程序加载失败
事件查看器日志:
日志名称:应用程序源:IIS AspNetCore 模块 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 Core 模块 V2。提交:844a82e37cae48af2ab2ee4f39b41283e6bb4f0e
小智 1
也许问题与“ASPNETCORE_ENVIRONMENT”变量设置有关。我们必须在 IIS 中提供此信息。
其实你可以在IIS的网站上设置。
打开“Internet 信息服务 (IIS) 管理器。
转到您要设置环境变量的网站。找到“配置编辑器”。
在配置编辑器的“部分”部分中,system.webServer/aspNetCore在左侧下拉列表中选择ApplicationHost.config。
单击environmentVariables然后您将获得当前环境变量。添加一个新的环境变量。
name将会是ASPNETCORE_ENVIRONMENT并且value将会是Development[登台/产品]。
关闭窗口并重新启动网站。
尝试一下上面的方法。快乐编码!
| 归档时间: |
|
| 查看次数: |
14811 次 |
| 最近记录: |