0

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

我正在使用以下堆栈

面向 .Net Framework 4.7.2 的 asp.net 核心(进程外)

而且我无法再让我的 Web 应用程序正常运行。当我点击网址时,我得到的只是

“该页面无法显示,因为发生了内部服务器错误。”

在回应中。

我已经使用 Kudu powershell 窗口和命令启动了我的应用程序

“.{应用程序名称}.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="Access is denied. (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."

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

4

1 回答 1

0

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

以下设置

      <access sslFlags="SslNegotiateCert" />

在 web.config 中,并且在应用程序设置中需要传入证书导致了我的问题。

然后我尝试了“证书排除路径”的功能,但是拥有这个和 web.config 访问节点会使 Web 服务器非常不安并导致错误消息

“该页面无法显示,因为发生了内部服务器错误。”

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

于 2019-07-26T17:12:19.903 回答