私の MVC コントローラーには、ブロブ ストリームを FileResult に渡すことによって Azure ブロブを返すいくつかのアクションがあります。このような:
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
Message=オブジェクト参照がオブジェクトのインスタンスに設定されていません。
Source=Microsoft.WindowsAzure.Storage
StackTrace:
e:\projects\azure-sdk-for-net\microsoft-azure の Microsoft.WindowsAzure.Storage.Blob.BlobReadStreamBase.ConsumeBuffer(Byte[] buffer, Int32 offset, Int32 count) で-api\Services\Storage\Lib\Common\Blob\BlobReadStreamBase.cs:
e:\projects\azure の Microsoft.WindowsAzure.Storage.Blob.BlobReadStream.Read(Byte[] buffer, Int32 offset, Int32 count) の222 行目-sdk-for-net\microsoft-azure-api\Services\Storage\Lib\DotNetCommon\Blob\BlobReadStream.cs:
System.Web.Mvc.FileStreamResult.WriteFile(HttpResponseBase 応答)の 72 行目
System.Web.Mvc.FileResult.ExecuteResult (ControllerContext コンテキスト)
で 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 ライブラリ自体から発生しているようです。何か案は?