我的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;
}
答案 0 :(得分:1)
尽管我看不到代码中的任何明显问题,但实际上您可以通过Visual Studio在Azure WebApp上远程调试应用程序。
三个官方博客介绍了如何在Azure WebApp上进行远程调试。
您只需要按照下图在Azure门户上启用App Service的Debugging
功能,然后就可以按照上面的博客进行操作。
希望有帮助。