【发布时间】:2021-12-25 02:24:48
【问题描述】:
我已经分叉了示例 PlanetaryDocs ASP.NET Web 应用程序。此 WebApp 连接到我的 Cosmos DB (SQL/DocumentDB),并且似乎通过 Docker 容器从 Visual Studio 运行良好...我已将其发布到 Azure 容器注册表 (ACR)。
当我部署到 Azure 应用服务时,它会提供 URL,当我将浏览器指向它时,我会看到“应用程序错误,如果您是应用程序管理员,则可以访问诊断资源”但单击超链接(对于诊断资源)没有影响。
- 我尝试使用 VS Code 应用服务扩展重新启动应用,并查看日志中的一些错误消息没有发现任何帮助(只有几条关于过去 5 分钟内没有跟踪的消息和“日志流会话已结束” )...也许重启会结束日志流会话?如何获取重启日志?
- 因此,如果应用程序从我的开发计算机运行,因为我的开发计算机的 IP 地址被列为 Azure 门户(对于我的 Cosmos DB 配置)中允许访问我的 cosmos DB 的外部 IP 地址之一,这是 (问题?我是否必须将 Azure 应用服务实例的 IP 地址添加为允许的外部 IP 地址之一?我怎么做?也许我需要设置一个虚拟网络?
- 除了查看日志,还有其他可用的调试工具吗?如何让该超链接在网页上正常工作?
2022 年 1 月 5 日星期三更新 #1(VS 2019):
-
哇!我喜欢 VS 2019 Cloud Explorer 的 UI,我发现它不适用于 VS2022。有人知道他们为什么把它拿走吗?
-
所以在过去,我能够使用 VS2019 创建一个 docker 容器(在发布模式下)并将其部署到 Azure Kubernetes 并使用 VS2019 调试器附加到 Kubernetes Pod,不知何故它能够神奇地向我展示源代码让我迈出一步!是否可以或有必要在调试模式下创建 docker 容器并将其部署到 Azure Web 应用程序并附加调试器?如何创建调试模式的 docker 容器?
-
按照那些很好的说明,我能够附加 VS 2019 调试器,但从堆栈跟踪中看不到任何东西——即使在按下暂停(双竖线)按钮后也是如此。嘘......我看到我有三个正在运行的任务和很多线程,但我看不到它们。难道我做错了什么?我尝试点击继续并暂停几次,希望得到一些线索,但没有运气。
-
这是来自
az.cmd webapp browse命令的日志,但我也找不到任何线索。
WARNING: 2022-01-05 22:51:44 PLANETARYDOCS GET / - 80 - 10.0.128.7 ReadyForRequest/1.0+(AppInit) - - xyz.azurewebsites.net 200 0 0 377 417 15
WARNING: 2022-01-05 22:51:45 PLANETARYDOCS GET /DebugWarmUp X-ARR-LOG-ID=35910c0e-098c-430a-adb7-c91f1086599a 80 - 10.0.64.5 - - - xyz.azurewebsites.net 404 0 2 470 600 31
WARNING: 2022-01-05T22:53:27 PID[21316] Verbose SnapshotHelper::TakeSnapshotTimerCallback
WARNING: 2022-01-05T22:53:27 PID[21316] Verbose SnapshotHelper::TakeSnapshotInternal - no new files in CodeGen
WARNING: 2022-01-05T22:54:29 No new trace in the past 1 min(s).
WARNING: 2022-01-05T22:55:29 No new trace in the past 2 min(s).
WARNING: 2022-01-05T22:56:2
WARNING: 9 No new trace in the past 3 min(s).
WARNING: 2022-01-05T22:57:29 No new trace in the past 4 min(s).
WARNING: 2022-01-05T22:58:29 No new trace in the past 5 min(s).
WARNING: 2022-01-05T22:59:29 No new trace in the past 6 min(s).
WARNING: 2022-01-05T23:00:29 No new trace in the past 7 min(s).
2022 年 1 月 5 日星期三更新 #2(工藤):
- 我按照 HarshithaVeeramalla 的指示(谢谢)在 http/RawLogs 目录中找到了一些(原始)日志。没有应用程序目录,我在其他任何地方都找不到任何日志或任何其他有趣的东西。日志看起来像是来自浏览器的大量 GET 请求,用于将网站图标和其他图形与一些我无法识别的 AJAX/REST 调用混合在一起......
- kudu/trace 目录包含很多 XML 文件,从文件名可以看出我今天重启了 web 应用程序。
- 所以让我们假设问题是我无法连接到我的 azure cosmos DB,也许我的 cosmos 端点有错字。某处应该有一个 C# 堆栈跟踪(最好在其中包含一些不错的源代码行号)......这是我可以在 Kudu 中诊断出来的吗?我会去哪里看?
谢谢!
【问题讨论】:
-
所以你通过 ips 限制了对 cosmos 的访问,并在某个云资源的容器中运行它,并且没有添加该 ip.. 对吗?
-
那是正确的...我不知道我的应用服务实例的 IP 地址是什么,也不知道如何获取它。 (如何为 ASP.NET 6 应用获取它?)应用服务的 VSCode 扩展仅支持 nodejs 应用的 SSH 和调试会话。
-
去kudu站点查看日志文件。转到 https://[your-WebApp].scm.azurewebsites.net/ ,调试控制台 > CMD,进入 D:\home\LogFiles\Application`
标签: c# asp.net-core entity-framework-core azure-web-app-service azure-cosmosdb-sqlapi