Mar*_*ert 4 twilio conemu azure-functions
我正在学习如何使用Azure功能来处理和响应通过Twilio电话号码提交的SMS消息。这是使用Microsoft.Azure.WebJobs.Extensions.Twilio(3.0.0-beta5)的预览版v2。
我使用ngrok将来自Twilio的http触发器转发到本地服务器,当我从Visual Studio(2017)中以调试模式启动Azure函数时将触发该本地触发器。
我使用的代码非常简单,只是返回一条短信以响应收到的任何内容:
public static class Function1
{
[ FunctionName( "BikeSMS" ) ]
public static IActionResult Run(
[ HttpTrigger( AuthorizationLevel.Function, "get", "post", Route = null ) ]
HttpRequest req,
TraceWriter log
)
{
log.Info( "C# HTTP trigger function processed a request." );
var twiResp = new MessagingResponse();
twiResp.Append( new Message( "This is Muddlehead. Thanx for your message" ) );
return new ContentResult()
{
Content = twiResp.ToString(),
ContentType = "application/xml"
};
}
}
Run Code Online (Sandbox Code Playgroud)
这很好。我的问题是我无法让调试器破坏函数中的任何内容。断点将被忽略,并返回指定的文本。
如何配置事物,以便在调用Azure函数时参与调试器?我是否需要传递到VS 2017启动的本地服务器上的某些设置才能托管/运行Azure功能?
更新资料
我能够使VS调试器在断点处停止,但是只有在将VS手动附加到运行本地Azure Function服务器的控制台应用程序后,该应用程序在您按F5键时启动。
因此,在配置或工具方面出了点问题,因为在您按F5键时,无论VS调试器连接到什么,它都不是正确的应用程序。
我没有提交此答案,因为不是。我不必手动重新连接调试器。
这是我用来使调试器以应有的方式开始工作的步骤:
1)在调试模式下通过F5启动Azure Function应用。将为Azure Function主机打开控制台窗口。
2)调试->停止调试。在#1中打开的控制台窗口关闭,并出现一个运行Azure Function主机的新控制台窗口。
3)将VS调试器附加到在#2中打开的控制台应用程序(在我的情况下称为“ func.exe”)。
调试现在可以按预期进行。
附加信息:我将ConEMU用作VS中的默认控制台外壳。我不知道这是否意味着什么,但是在#1中打开的控制台是ConEMU shell,但是在#2中打开的控制台是普通的cmd.exe shell。
Lau*_*nen 16
我没有ConEMU,但是我遇到了同样的问题-函数断点刚刚停止工作。此外,当我停止进程时,功能运行时控制台没有关闭,它早已关闭。在Visual Studio中运行。
解决方案非常不直观:转到“工具->选项->调试”,然后取消选中 “调试停止时自动关闭控制台”。之后,即使窗口仍未自动关闭,断点也重新开始工作。
在这种情况下,ConEMU 如何接管 Window 默认控制台窗口的打开显然存在问题(您可以在https://conemu.github.io/en/DefaultTerminal.html阅读有关 ConEMU 的此功能)。
禁用这个 ConEMU 功能——它可以让 VS 打开一个普通的 Windows 控制台——解决了这个问题;断点按正常情况命中,无需手动连接到运行 Azure Functions 本地主机的控制台。当然,这意味着我失去了在 VS 中打开 ConEMU shell 的价值,但我可以接受这一点。我会将问题报告给 ConEMU 团队。
| 归档时间: |
|
| 查看次数: |
1185 次 |
| 最近记录: |