.net core 1.1で起動する次のコードを取得できません。サーバーからSSRSレポートをエクスポートし、FileResult型を返します。私はFileContentResultに変換してからmemorystreamに、次にbytearrayに変換します。ファイルは生成されますが、response.contentは正しく設定されたコンテンツ長ヘッダーを含むヘッダーしか持ちませんが、bytearrayコンテンツ自体は含まれません。これは常に空です。コンテンツは、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;
}
私はこの問題を考えているが、それはreadcountとwritecount例外警告を与えていないとして、それはresponse.contentまたは多分ms.toarray()の呼び出しを設定し、エリア内にあるが、私も読みましたそれは何らかの理由でMicrosoftによって意図的に行われたものです。
実際のメソッドとコントローラの内部にコードを配置できますか?その後、それはよりよく理解できた。 –
コメントありがとうございます。実際に私は今夜これを解決しました。私は答えを1秒後に投稿します。しかし、あなたは正しいです、私は余分なコードを追加します。 – Morgan