在Azure函数中启用异常

时间:2016-12-26 17:06:49

标签: c# azure-functions

我试图调试我的Azure功能应用程序,我得到的只是"发生错误"这使得解决我的问题非常困难。知道如何启用应用程序返回的完整异常吗?任何使调试成为可能的事情,因为我现在已经大大阻止调试。

非常感谢。

尼克。

编辑:在函数的表存储日志中,我看到以下错误,

...obs.Script.Description.FunctionInvokerBase.<Invoke>d__29.MoveNext()--- End of stack trace from previous location where exception was thrown ---   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)   at Microsoft.Azure.WebJobs.Host.Executors.FunctionInvoker`1.<InvokeAsync>d__8.MoveNext()--- End of stack trace from previous location where exception was thrown ---   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)   at Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.<InvokeAsync>d__22.MoveNext()--- End of stack trace from previous location where exception was thrown ---   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)   at Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.<ExecuteWithWatchersAsync>d__21.MoveNext()--- End of stack trace from previous location where exception was thrown ---   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)   at Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.<ExecuteWithLoggingAsync>d__19.MoveNext()--- End of stack trace from previous location where exception was thrown ---   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)   at Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.<ExecuteWithLoggingAsync>d__13.MoveNext()   --- End of inner exception stack trace ---

即使我在第一行手动抛出异常,我也会看到此错误。真正的例外在哪里?

enter image description here 看看这些日志确实让我有时质疑微软的决定,这对任何人都有用吗?或者我错过了一些关键的东西?

1 个答案:

答案 0 :(得分:0)

好的,这是我的解决方案,这可能会因您的错误而有所不同,因为错误是如此通用。首先我做的是为我的函数禁用身份验证,试图让浏览器内的编译器再次运行,因为自从我这样做以来它已经被破坏了,它没有帮助,它导致了我所有的404错误功能。所以我再次启用它,这导致编译器开始工作!它显示我有一个参考不匹配的Azure存储,不知何故我的dll引用7.x但在功能应用程序中期望6.x,这是奇怪的,因为我不记得曾经改变它。无论如何,我创建了一个 project.json 文件,其中包含以下内容,

{
  "frameworks": {
    "net46":{
      "dependencies": {
        "WindowsAzure.Storage": "7.2.1"
      }
    }
   }
}

将其上传到每个功能的文件夹后,它再次起作用。我现在将通过 project.json 文件显式设置所有外部依赖项,以防止再次发生这种情况。

  

值得注意的是,虽然这并没有完全例外   在浏览器中返回,它确实让我看到编译器错误,   这是造成问题并阻止我处理的原因   功能应用程序中的任何异常。

-

  

最后一个注意事项,以及显示Azure功能应用程序的错误程度   虽然身份验证已启用&#34;已启用&#34;根据应用程序设置,它是   不工作,这就是浏览器内编译器正在运行的原因。我&#39;米   努力让它再次运作,但不会回答这个问题   线程了。要小心。