Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 仅当部署web应用时才会引发错误_Asp.net_Azure_Azure Web App Service_Azure Blob Storage - Fatal编程技术网

Asp.net 仅当部署web应用时才会引发错误

Asp.net 仅当部署web应用时才会引发错误,asp.net,azure,azure-web-app-service,azure-blob-storage,Asp.net,Azure,Azure Web App Service,Azure Blob Storage,我的ASP.NET web应用程序获取一个图像文件,并将其作为BLOB上载到Azure存储。在调试和发布模式下本地运行时,它工作正常。当应用程序通过其Azure web应用程序部署时,就会出现问题。不幸的是,由于我无法获得堆栈跟踪,我无法完全找出问题的原因,但我唯一能想到的是Azure存储出于安全原因正在阻止它,但它设置为允许来自Azure服务的调用,所以我认为它会允许它 下面是网站用来上传图片的函数。这是从操作调用的唯一函数,因此它必须在此处引发异常 public async Task<

我的ASP.NET web应用程序获取一个图像文件,并将其作为BLOB上载到Azure存储。在调试和发布模式下本地运行时,它工作正常。当应用程序通过其Azure web应用程序部署时,就会出现问题。不幸的是,由于我无法获得堆栈跟踪,我无法完全找出问题的原因,但我唯一能想到的是Azure存储出于安全原因正在阻止它,但它设置为允许来自Azure服务的调用,所以我认为它会允许它

下面是网站用来上传图片的函数。这是从操作调用的唯一函数,因此它必须在此处引发异常

public async Task<bool> UploadFile(IFormFile file, string fileName, Vendor vendor)
    {
        string storageConnectionString = _config.GetConnectionString("Storage");
        CloudStorageAccount storage = CloudStorageAccount.Parse(storageConnectionString);
        CloudBlobClient blobClient = storage.CreateCloudBlobClient();
        string nameFormatted = vendor.Name.Replace(" ", "").ToLower();
        var container = blobClient.GetContainerReference(nameFormatted);
        await container.CreateIfNotExistsAsync();
        using (var stream = file.OpenReadStream())
        {
            var blobRef = container.GetBlockBlobReference(fileName);
            await blobRef.UploadFromStreamAsync(stream);
        }
        return true;
    }
公共异步任务上载文件(IFormFile文件、字符串文件名、供应商)
{
字符串storageConnectionString=\u config.GetConnectionString(“存储”);
CloudStorageAccount storage=CloudStorageAccount.Parse(storageConnectionString);
CloudBlobClient blobClient=storage.CreateCloudBlobClient();
字符串nameFormatted=vendor.Name.Replace(“,”).ToLower();
var container=blobClient.GetContainerReference(nameFormatted);
wait container.CreateIfNotExistsAsync();
使用(var stream=file.OpenReadStream())
{
var blobRef=container.GetBlockBlobReference(文件名);
等待blobRef.UploadFromStreamAsync(流);
}
返回true;
}
下面是部署时抛出的错误。

虽然我看不到您的代码中有任何明显的问题,但实际上您可以通过Visual Studio在Azure WebApp上远程调试应用程序

有三个官方博客介绍如何在Azure WebApp上进行远程调试

  • 您只需按照下图在Azure portal上启用应用程序服务的
    调试
    功能,然后您就可以按照上面的博客进行操作


    希望有帮助。

    您是否尝试添加对容器的权限@KarthikGanesan没有运气你是作为Azure应用服务托管的吗?为什么你不能得到堆栈跟踪?您是否尝试启用应用程序服务日志或应用程序洞察?有详细的错误吗?