Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何解决Asp.Net核心API中禁止的HTTP错误403.14?_C#_Asp.net Core_Iis_Asp.net Core Webapi_Web Deployment - Fatal编程技术网

C# 如何解决Asp.Net核心API中禁止的HTTP错误403.14?

C# 如何解决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

我正在开发Asp.NETCore3.1API。它运行良好,我正在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>

但是我不知道为什么我们会出现这个错误
  • 我们如何以更干净、更容易的方式解决这个问题
  • 如果真的需要修改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">