我的 MVC 控制器中有几个操作,它们通过将 blob 流传递到 FileResult 来返回 Azure blob。像这样:
public FileResult DownloadReport(string Id)
{
// Look up model
string fileName = messenger.ReportTitle(Id);
// Get a reference to the blob
CloudBlockBlob mainReportBlob = cloudBlobContainer.GetBlockBlobReference(Id);
// Return as a FileResult
using (var reportReader = mainReportBlob.OpenRead())
{
return File(reportReader , "application/pdf", fileName );
}
}
我最近将我的 Azure 存储库更新到了最新版本,并开始收到以下异常:
System.NullReferenceException 未被用户代码处理
HResult=-2147467261
消息=对象引用未设置为对象的实例。
Source=Microsoft.WindowsAzure.Storage
StackTrace:
在 Microsoft.WindowsAzure.Storage.Blob.BlobReadStreamBase.ConsumeBuffer(Byte[] buffer, Int32 offset, Int32 count) 在 e:\projects\azure-sdk-for-net\microsoft-azure -api\Services\Storage\Lib\Common\Blob\BlobReadStreamBase.cs:
e:\projects\azure 中 Microsoft.WindowsAzure.Storage.Blob.BlobReadStream.Read(Byte[] 缓冲区,Int32 偏移量,Int32 计数的第 222 行-sdk-for-net\microsoft-azure-api\Services\Storage\Lib\DotNetCommon\Blob\BlobReadStream.cs:
System.Web.Mvc.FileStreamResult.WriteFile 的第 72 行(HttpResponseBase 响应)
在 System.Web.Mvc.FileResult.ExecuteResult(ControllerContext context)
在 System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult)
在 System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList 1 过滤器, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList
该错误似乎来自 Azure 库本身。有任何想法吗?