如何在 Visual Studio 中使用 .NET 5(隔离进程)调试 Azure Functions?

2023-11-23

我最近从 .NET Core 3.1 迁移到 .NET 5.0(使用隔离/进程外运行时) 对于 C# 中的 Azure Function 项目。一切都按预期进行。但是,每当我调试时,我的断点都不会命中。为什么我以前可以,但现在无法调试 Azure Function 应用程序?


如果您使用的是 Visual Studio 16.10 或更高版本,则在 Visual Studio 中进行调试非常简单。

微软更新的步骤如下:

Visual Studio 与 Azure Functions Core Tools 集成,以便您 可以使用完整的 Azure Functions 在本地测试您的函数 运行。

  • 要运行函数,请在 Visual Studio 中按 F5。您可能需要启用防火墙例外,以便工具可以处理 HTTP 要求。当您运行时,永远不会强制执行授权级别 本地运行。

  • 从 Azure Functions 运行时输出复制函数的 URL 并运行请求。欢迎使用 Functions 消息是 函数运行成功并写入日志时显示 运行时输出。

  • 要停止调试,请在 Visual Studio 中按 Shift+F5。

验证该函数在本地正确运行后 计算机,是时候将项目发布到 Azure 了。


以下部分仅适用于您使用 Visual Studio 版本 16.9 或更早版本的情况。我强烈建议升级 Visual Studio,而不是使用这种“PITA”方法。

(Please 查看Andrii的回答以获得替代解决方案)

在网上进行了大量研究后,我了解到 .NET 5 for Azure Functions 使用的隔离进程默认不支持调试。要在 Visual Studio 中执行此操作,你需要按照以下步骤操作(链接曾经有效,但现已更新)。

  1. 在 Visual Studio 中打开您的解决方案
  2. 在 Visual Studio 中打开 PowerShell(查看 -> 终端,或 Ctrl-`)
  3. 导航到您的项目cd MyProject
  4. 在启用调试的情况下启动该功能func start –-dotnet-isolated-debug此时,您应该看到终端输出中打印了一个 PID,类似于以下内容
 Functions:
     HttpExample: [GET,POST] http://localhost:7071/api/HttpExample
 For detailed output, run func with --verbose flag.
 [2021-03-09T08:41:41.904Z] Azure Functions .NET Worker (PID: 81720) initialized in debug mode. Waiting for debugger to attach...
  1. 打开附加进程(打开 -> 调试)窗口,然后选择在控制台输出中找到的 PID 此时,断点有效并将被命中断点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Visual Studio 中使用 .NET 5(隔离进程)调试 Azure Functions? 的相关文章

  • dup2() 和 exec()

    include
  • binary_log_types.h:没有这样的文件或目录

    我正在编译一个小型 mysql C 项目并且 遇到以下错误 C Program Files x86 MySQL MySQL Server 5 7 include mysql com h 22 30 fatal error binary lo
  • 如何通知父线程所有子线程都已终止?

    我有一个控制台应用程序正在移植到 WPF 该应用程序有 3 个工作线程 在将一些输出结果打印到屏幕上之前 这些线程都连接到主线程 我的理解是 如果我尝试在 WPF 应用程序中执行相同的操作 GUI 将被阻止并且不会响应用户 那么如何通知父线
  • 在 C# 中轻松创建支持索引的属性

    在 C 中我发现索引属性 http msdn microsoft com en us library aa288464 VS 71 aspx非常有用 例如 var myObj new MyClass myObj 42 hello Conso
  • C++ 和序列化:有什么方法可以进行某种内省吗?

    我读过一些例子维基百科 http en wikipedia org wiki Type introspection C 2B 2B但我正在寻找一些现实生活中的例子 如何使用内省 为什么 它有助于编写干净的代码 以及代码本身 例如 有没有办法
  • 当我使用 SetWindowsHookEx WH_KEYBOARD_LL 交换按键时,为什么我的程序会陷入过多键盘输入事件的循环?

    I am trying to write a program for Windows system that swaps the A and B keys i e when I press the A key B gets typed an
  • Azure Functions - 注入的 ILogger 日志未显示

    我在用着FunctionsStartup在 Azure Functions 项目中设置 IoC 绑定 但是 从注入创建的任何日志ILogger
  • std::tr1::function 和 std::tr1::bind

    我在使用时遇到问题veryC 类中的复杂 C 函数 重写 C 函数是not一个选项 C函数 typedef void integrand unsigned ndim const double x void fdata unsigned fd
  • 修剪 UIImage 边框

    这是我想要修剪的图像的示例 我想去掉图像周围的边框 在本例中是顶部和底部的黑条 我在Github上找到了一个库 CKImageAdditions https github com cmkilger CKImageAdditions 但是它似
  • 为什么我不能从对中返回 unique_ptr?

    为什么我不能从对中返回 unique ptr include
  • 如何在Azure功能中添加razor视图文件?

    我正在创建一个应用程序 它是 azure 函数项目 我想在该项目中使用 Razor 视图 我应该在 azure 函数中使用任何模板引擎吗 得益于一些方面的进步剃刀之光项目 https github com toddams RazorLigh
  • Identity Server 4:添加访问令牌的声明

    我正在使用 Identity Server 4 和隐式流 并且想要向访问令牌添加一些声明 新的声明或属性是 tenantId 和 langId 我已将 langId 添加为我的范围之一 如下所示 然后通过身份服务器请求 但我也获得了tena
  • 除空字符串外的任何内容的正则表达式

    是否可以使用正则表达式来检测任何不是 空字符串 的内容 如下所示 string s1 string s2 string s3 string s4 etc 我知道我可以使用修剪等 但我想使用正则表达式 s 将匹配任何包含至少一个非空格字符的字
  • 将授权标头添加到 Web 参考

    我正在尝试向客户端的网络服务发出请求 我不知道客户端的底层平台 我使用 添加 Web 引用 在 Visual Studio 2010 中使用了客户端的 WSDL 并生成了我的代理类 称为 ContactService 我现在需要将如下所示的
  • C++:LPWSTR 在 cout 中打印为地址

    我有一个类型变量LPTSTR 我打印到std cout with lt lt 在 ANSI 系统中 不知道它是在哪里确定的 它工作得很好 它打印了字符串 现在 在 Unicode 系统中 我得到的是十六进制地址而不是字符串 那么 为什么LP
  • Request.Form 和 Request.QueryString 之间的区别?

    有人可以告诉我两者之间的确切区别吗Request Form and Request QueryString 我知道一个区别 比如 如果HTTP请求方式为POST 则用户提交的数据在申请表 收藏 如果HTTP请求方法是GET 则用户提交的数据
  • 如何在asp.net core 6中注入IConfiguration

    web api 应用程序中不再有 Startup cs 我们以前可以注入IConfiguration进入那个Startup class public class Startup public Startup IConfiguration c
  • #define 内存地址声明

    这个 define 语句有什么作用 它用于定义内存地址 但我不明白 uint32 t 部分 define GPxDAT uint32 t 0x6FC0 通常用于访问映射到地址空间的硬件寄存器 或者一些特定的内存地址 硬件寄存器应定义为vol
  • 将多个 Blob 输入传递到 QueueTrigger Azure 函数的最佳方法

    问题 触发后 生成 3 个 XML 文件 完成后将它们通过 ftp 传输到站点 目前的方法 我有一个 HTTP 触发器 Azure 函数 运行时将构造 3 个 XML 文件并将它们保存到 Azure 存储 Blob 容器中 由于有多个输出
  • 替换全局热键

    我有一个位于托盘中的应用程序 我想定义多个热键来触发我的程序中的事件 我从 AaronLS 在这个问题中的出色回答中找到了灵感 使用C 设置全局热键 https stackoverflow com a 27309185 3064934 如果

随机推荐