如何捕获立即崩溃的Azure函数的控制台输出?

时间:2018-10-19 13:48:00

标签: visual-studio azure azure-functions .net-standard

我有一个v2 Azure功能。当我在调试中运行项目时,控制台窗口打开,我看到Azure徽标旋转出来,然后出现一些红色文本,并且在我有机会看到异常之前,整个事件都关闭了。有什么方法可以捕获正在写入控制台窗口的内容吗? (或者关于如何捕获异常并弄清楚发生了什么其他建议)

我安装了以下软件包:

  • Microsoft.Azure.WebJobs.Extensions.Storage v3.0.1
  • Microsoft.NET.Sdk.Functions v1.0.23
  • NETStandardLibrary v2.0.3
  • SimpleInjector v4.3.0

我正在以管理员模式运行Azure存储模拟器和Visual Studio。对于我所有的连接,我都使用UseDevelopmentStorage=true

我的launchSettings.json文件如下:

{
  "profiles": {
    "MyProject.Functions": {
      "commandName": "Project",
      "commandLineArgs": "C:\\Users\\someone\\AppData\\Roaming\\npm\\node_modules\\azure-functions-core-tools\\bin\\func.dll host start --port 7077 --pause-on-start"
    }
  }
}

请让我知道是否需要提供其他信息。

2 个答案:

答案 0 :(得分:1)

我的建议是删除您的launchSettings.json

默认情况下,只要我们安装了最新的Azure Functions and Web Jobs Tools,Function项目就不需要此文件,并且会自动下载并使用最新的功能核心工具。在VS菜单>工具>扩展和更新中找到它,现在在VS 15.8.7中看到它的版本是15.10.2046。

我们可以看到Function项目的默认配置文件是

"<YourFunctionAppName>": {
  "commandName": "Project"
}

如果要使用npm安装的cli,请尝试以下设置。

"<YourProfileName>": {
  "commandName": "Executable",
  "executablePath": "%APPDATA%\\npm\\node_modules\\azure-functions-core-tools\\bin\\func.exe",
  "commandLineArgs": "host start --port 7077"
}

--port是可选的,默认值为7071。没有名为--pause-on-start的参数。

答案 1 :(得分:0)

在v2中,如果我们尚未更新Storage Emulator版本,则会在Function CLI中出现错误。但是此错误不会停止对本地功能的测试。日志通常会进入仿真器中的TableStorage。

与该屏幕截图类似的错误。 enter image description here