我在 .NET Framework 4.8 上有一个 asp.net 5 Web 应用程序,它作为带有 Windows Server 2019 容器映像的 azure 应用程序服务运行。我设置了一个诊断设置以将“AppServiceHTTPLogs”发送到事件中心,并且在检查日志时,我注意到经过身份验证的请求缺少 CsUsername 属性。
在本地或什至作为 Azure 容器实例运行相同的容器映像并检查容器上的 IIS 日志我可以看到用户名,因此这与作为日志不运行的应用服务运行时捕获 https 日志的方式和位置有关'不获取经过身份验证的主体的身份名称。
有没有其他人遇到过这个?我是否需要将主体公开为日志记录以获取它的响应标头?
更新:2022 年 2 月 24 日
除了在这里询问之外,我还启动了一个与 azure 支持有关的案例,询问为什么运行 Windows 容器的 Windows 应用服务计划上的 azure 应用服务中的 Web 服务器日志缺少 cs-username 信息,而正在安慰正在运行的容器应用服务并检查 C:\inetpub\logs\LogFiles\W3SVC1 中的 w3c 日志会显示 cs-username 值。
他们终于回过神来,说:
目前恐怕您设置的体系结构不支持此功能,获取 CsUsername 详细信息的唯一方法是部署 Linux 应用服务,然后将 Azure 存储帐户作为数据端点。
这对我一点帮助都没有,因为我无法在 Linux 应用服务计划中运行 .NET Framework 4.8 ASP.NET MVC 5 应用程序容器。通常,通过部署 Windows 容器以作为 azure 应用程序服务运行的考验,使用 Azure DevOps 管道将容器作为 azure 应用程序服务运行,我发现微软对运行基于 Windows 的容器的支持非常具有挑战性,而且没有太多持续性支持。他们试图推动 linux 托管环境,不幸的是,只有当您的架构基于 .NET 核心框架时,这才是一种选择。