Microsoft.WindowsAzure.Storage:服务器遇到内部错误,没有告知根本原因

问题描述

我在本地使用azurite创建了一个Blob存储容器,并且可以使用Storarge Explorer写/删除文件

代码可以正常运行,但在查看后数秒内会终止,并带有未处理的异常

using System.IO;
using Microsoft.Azure.WebJobs;
using Microsoft.Extensions.Logging;


namespace WatchStorage
{
    #region Constructor
    public class WatchStorageFunctions
    {
        private ILogger Logger { get; set; }
       
        public WatchStorageFunctions(ILogger<WatchStorageFunctions> logger)
        {
            this.Logger = logger;
        }
        #endregion

        [FunctionName("TaskWatchWebjobs")]
         public void RunTaskWatchWebjobs([BlobTrigger("azuritstore/{name}",Connection = "AzureWebJobsstorage")]Stream myBlob,string name)
        {
            this.Logger.Loginformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");
        }
    }
}

这是local.settings.json

{
    "IsEncrypted": false,"Values": {
    "AzureWebJobsstorage": "UseDevelopmentStorage=true","AzureWebJobsDashboard": "","FUNCTIONS_WORKER_RUNTIME": "dotnet","StorageConnectionString": "UseDevelopmentStorage=true"
  }
}   

错误消息只是

[] Host lock lease acquired by instance ID '00000000000000000000000049821116'.
[] An unhandled exception has occurred. Host is shutting down.
[] Microsoft.WindowsAzure.Storage: Server encountered an internal error. Please try again after some time.
[] Stopping host...
[] Stopping JobHost
[] Job host stopped
[] Host shutdown completed.

我是新手,希望获得更详细的错误消息。那可能吗 ? 非常感谢!

解决方法

是的,您可以在本地调试中看到详细的错误消息。我已在一端创建了一个Azure Blob触发器,并将向您展示如何查看详细的错误。请检查以下内容:

  1. 在代码中提到的容器中上传一个blob(对我来说,这是samples-workitems):

enter image description here

  1. 添加如下所示的try-catch和日志记录语句:

enter image description here

  1. 现在,您将能够在VS Console中查看日志错误:

enter image description here

  1. 对于Hosted Function App中的错误消息,您将能够在 Function App> FUNCTION_APP_NAME> FUNCTION_NAME> Code + Test> Logs Pane底部查看门户上的日志。