【发布时间】:2022-02-25 04:44:58
【问题描述】:
我在 .NET Framework 4.8 上有一个 asp.net 5 Web 应用程序,它作为一个带有 Windows Server 2019 容器映像的 azure 应用程序服务运行。我设置了一个诊断设置以将“AppServiceHTTPLogs”发送到事件中心,在检查日志时,我注意到经过身份验证的请求缺少 CsUsername 属性。
在本地甚至作为 Azure 容器实例运行相同的容器映像并检查容器上的 IIS 日志我可以看到用户名,因此这与作为应用服务运行时捕获 https 日志的方式和位置有关日志不会获取经过身份验证的主体的身份名称。
还有其他人遇到过这种情况吗?我是否需要将主体公开为响应标头以供日志记录使用?
更新:2022 年 2 月 24 日
除了在这里询问之外,我还启动了一个 azure 支持的案例,询问为什么运行 Windows 容器的 Windows 应用服务计划上的 Web 服务器从 azure 应用服务日志记录缺少 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 核心框架时,这才是一种选择。
【问题讨论】:
标签: azure azure-web-app-service iis-logs