我無法獲得以下代碼在.net core 1.1中激發。它從服務器導出SSRS報告,並返回FileResult類型。我將轉換爲FileContentResult,然後轉換爲內存流然後轉換爲bytearray。該文件被生成,但response.content只有頭部包含正確設置的內容長度頭部,但不包含字節數組內容本身。這總是空的。內容正在使用axios從Vue.JS應用程序的.net核心中檢索。FileContentResult寫入HttpResponseMessage.Content
[HttpPost, Route("GetDailyInstitution")]
public HttpResponseMessage GetDailyInstitution([FromBody]
ReportViewModels.DailyReportInst mydata)
{
HttpResponseMessage response = new HttpResponseMessage();
var model = this.GetReportViewerModel(Request);
var mdate = mydata.mydate;
model.ReportPath = "/xxxxx/xxxx/xxxx";
model.AddParameter("InstitutionID",
mydata.InstitutionID.ToString());
model.AddParameter("DayDate", mdate.ToString("dd/MM/yyyy"));
model.ViewMode = AlanJuden.MvcReportViewer.ReportViewModes.Export;
byte[] bytes;
MemoryStream mstream = new MemoryStream();
FileResult myfile = null;
FileContentResult myfilecontent = null;
switch (mydata.mytype)
{
case "pdfMe":
myfile = ExportReport("xxxxxx/xxxxxxxx/xxxx", "PDF");
myfilecontent = (FileContentResult)myfile;
bytes = myfilecontent.FileContents;
mstream.Write(bytes, 0, bytes.Length);
response.Content = new ByteArrayContent(mstream.ToArray());
response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/pdf");
break;
}
return response;
}
我想這個問題是在它設置response.content或可能ms.toarray()調用,因爲它確實會導致一個readcount和writecount異常警告該地區,但我也看到了這是由於某種原因,微軟有意爲之。
您可以將代碼放入其實際的方法和控制器中。那麼可以更好地理解。 –
感謝您的評論。其實我今晚就解決了這個問題。我會在第二時間發佈答案。但你說得對,我會添加額外的代碼。 – Morgan