C# 如何解决Asp.Net核心API中禁止的HTTP错误403.14?
我正在开发Asp.NETCore3.1API。它运行良好,我正在IIS上部署它,它给我以下错误 HTTP错误403.14-禁止 我已经找到了问题的根本原因,我将我的观察结果放在下面 这是我原来的web.configC# 如何解决Asp.Net核心API中禁止的HTTP错误403.14?,c#,asp.net-core,iis,asp.net-core-webapi,web-deployment,C#,Asp.net Core,Iis,Asp.net Core Webapi,Web Deployment,我正在开发Asp.NETCore3.1API。它运行良好,我正在IIS上部署它,它给我以下错误 HTTP错误403.14-禁止 我已经找到了问题的根本原因,我将我的观察结果放在下面 这是我原来的web.config <?xml version="1.0" encoding="utf-8"?> <configuration> <location path="." inheritInChildApplica
<?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>
但是我不知道为什么我们会出现这个错误
我们如何以更干净、更容易的方式解决这个问题
如果真的需要修改web.config,我们如何以干净的方式进行修改
更新:
正如@稻草人在他的回答中所建议的那样,我已经做了必要的修改,并且开始出现以下错误
HTTP错误500.0-进程处理程序中的ANCM加载失败
事件查看器日志:
日志名称:应用程序源:IIS AspNetCore模块V2
日期:2020年7月15日3:29:03上午事件ID:1031任务类别:
无级别:错误关键字:经典用户:不适用
计算机:SUSIAALGCBWSXT1.FCStone.com描述:应用程序
“D:\Octopus\Applications\Beta\ISOXMLValidationApi\1.0.0.9”失败
开始异常消息:在上找不到可执行文件
'D:\Octopus\Applications\Beta\ISOXMLValidationApi\1.0.0.9%LAUNCHER\u PATH%.exe'
事件Xml:
1031
2.
0
0x8000000000000
1090650
应用
SUSIAALGCBWSXT1.FCStone.com
应用程序“D:\Octopus\Applications\Beta\ISOXMLValidationApi\1.0.0.9”未能启动
开始异常消息:在上找不到可执行文件
'D:\Octopus\Applications\Beta\ISOXMLValidationApi\1.0.0.9%LAUNCHER\u PATH%.exe'
进程Id:19916。
文件版本:13.1.20142.5。描述:IIS ASP.NET核心模块V2。提交:844a82e37cae48af2ab2ee4f39b41283e6bb4f0e
问题可能与“ASPNETCORE_环境”变量设置有关。我们必须在IIS中提供此信息
实际上,您可以在IIS的网站上进行设置
- 打开“Internet信息服务(IIS)管理器”
- 转到要设置环境变量的网站。找到
“配置编辑器”
- 在配置编辑器的“部分”中,在左侧下拉菜单中选择
system.webServer/aspNetCore
,然后选择ApplicationHost.config
- 单击
environmentVariables
,您将获得当前的环境变量。添加一个新的环境变量
名称
将是ASPNETCORE\u环境
,值
将是开发
[staging/Prod]
- 关闭窗口并重新启动网站
试试上面的方法。
快乐编码!!%Launcher\u PATH%
和%Launcher\u ARGS%
必须在发布过程中替换
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess">
answer以获取更多详细信息通过将Visual Studio更新到16.6.4版本来解决此问题。我不知道net core是否仍然存在此问题,但在.net framework中,此错误通常是由于缺少对IIS的许可user@Krusty谢谢,但是它使用的是原始的web.config内容,所以我认为它不是r与权限相关403.14是什么请求?当您编写web API时,您应该知道它可以处理哪些URL(显然不是所有URL都可以生成200)@LexLi是的,它给出了403。14@viveknuna您启用了哪个iis功能?确保您有足够的权限分配给发布文件夹。如何在iis中发布网站?确保您的iis网站指向正确的发布文件夹。评论不用于扩展讨论;此对话已被删除。我不查找此内容。您的错误消息显示->异常消息:在“D:\Octopus\Applications\Beta\ISOXMLValidationApi\1.0.0.9%LAUNCHER\u PATH%
.exe”中找不到可执行文件
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess">