.net core 1.1에서 다음 코드를 실행할 수 없습니다. 서버에서 SSRS 보고서를 내보내고 FileResult 형식을 반환합니다. FileContentResult로 변환하고 나서 memorystream으로 변환 한 다음 bytearray로 변환합니다. 파일이 생성되었지만 response.content에는 올바르게 설정된 Content Length 헤더를 포함하는 헤더 만 포함되지만 bytearray 컨텐트 자체는 포함되지 않습니다. 이것은 항상 비어 있습니다. 콘텐츠는 Vue.JS 앱의 .net 코어에 axios를 사용하여 검색됩니다. 내가 문제를 생각하고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 예외 경고를 유발로 전화를 설정하는 영역에 있지만 나는 또한 읽었습니다 이는 Microsoft가 의도적으로하는 이유입니다.
코드를 실제 메소드와 컨트롤러 안에 넣을 수 있습니까? 그러면 더 잘 이해할 수 있습니다. –
의견을 보내 주셔서 감사합니다. 사실 나는 오늘 밤이 문제를 해결했습니다. 나는 잠시 후에 대답을 올릴 것이다. 하지만 네 말이 맞아, 나는 여분의 코드를 추가 할 것이다. – Morgan