asp.net核心进程外无法正确启动

asp.net core out-of-process fails to start correctly

我正在尝试使用 Azure 网站的 RunFromPackage 应用程序设置。

我正在使用以下堆栈

asp.net 核心(进程外) 针对 .Net Framework 4.7.2

而且我无法再将我的 Web 应用程序正确设置为 运行。当我点击 url 时,我得到的只是

"The page cannot be displayed because an internal server error has occurred."

在回复中。

我已经使用 Kudu powershell window 和命令

启动了我的应用程序

".{applicationName}.exe"

并且启动正常。没有错误或任何东西

查看事件查看器日志我只看到

APPLICATION_MANAGER::~APPLICATION_MANAGER |这=000001D1CD999A60 [TID 8872] [PID 8028]

当打开失败请求跟踪日志时,我看到以下相关信息

  1. URL_CACHE_ACCESS_START RequestURL="/favicon.ico" 15:37:30.729
  2. URL_CACHE_ACCESS_END PhysicalPath="", URLInfoFromCache="false", URLInfoAddedToCache="true", ErrorCode="操作成功完成。 (0x0)" 15:37:30.729
  3. GENERAL_GET_URL_METADATA PhysicalPath="", AccessPerms="545" 15:37:30.729
  4. HANDLER_CHANGED OldHandlerName="", NewHandlerName="aspNetCore", NewHandlerModules="AspNetCoreModule", NewHandlerScriptProcessor="", NewHandlerType="" 15:37:30.729
  5. MODULE_SET_RESPONSE_ERROR_STATUS

Warning ModuleName="IIS Web Core", Notification="BEGIN_REQUEST", HttpStatus="500", HttpReason="Internal Server Error", HttpSubStatus="0", ErrorCode="访问被拒绝。 (0x80070005)", ConfigExceptionInfo=""

我试图打开 asp.net 核心模块日志记录,但我没有得到任何日志文件。我也曾尝试打开 stdoutlog,但似乎没有任何记录。

这是我的副本 web.config

<configuration>
  <system.webServer>
    <security>
      <access sslFlags="SslNegotiateCert" />
    </security>
    <serverRuntime uploadReadAheadSize="30000000" />
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="%LAUNCHER_PATH%" stdoutLogEnabled="true" stdoutLogFile="\?\%home%\LogFiles\stdout" hostingModel="OutOfProcess" arguments="%LAUNCHER_ARGS%">
     <handlerSettings>
    <handlerSetting name="debugFile" value="\?\%home%\LogFiles\aspnetcore-debug.log" />
    <handlerSetting name="debugLevel" value="FILE,TRACE" />
  </handlerSettings>
    </aspNetCore>
  </system.webServer>
</configuration>

我不太确定发生了什么。我所能收集到的信息是 IIS 模块出了点问题。从错误消息看来它无法读取或处理我的 web.config ErrorCode="Access is denied."

奇怪的是,我之前构建了应用程序 运行ning。我试图隔离可能破坏网站的更改,但我似乎无法找出导致此问题的原因。

这似乎是因为我试图在一个端点上只获得客户端身份验证。

以下设置

      <access sslFlags="SslNegotiateCert" />

在 web.config 中,应用设置中的要求传入证书导致了我的问题。

然后我尝试了 "Certificate exclusion paths" 的功能,但是有了这个和 web.config 访问节点会使 Web 服务器非常不正常并导致错误消息

"The page cannot be displayed because an internal server error has occurred."

我不得不从我的 web.config 文件中删除节点,保留必需的 SSL,并设置我的证书排除路径,然后一切都恢复在线。