Веб API имеет этот метод;
public HttpResponseMessage GetReport()
{
var data = Logic.GetReportAsByteArray(...);
HttpResponseMessage response = new HttpResponseMessage();
response.Content = new ByteArrayContent(data);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
response.Content.Headers.ContentDisposition.FileName = "filename.pdf";
response.StatusCode = HttpStatusCode.OK;
return response;
}
Веб-клиент использует этот метод;
...
var request = new HttpRequestMessage(...)
HttpClient client = new HttpClient();
var response = await client.SendAsync(request);
var data = await response.Content.ReadAsByteArrayAsync();
return File(data, "application/pdf", "filename.pdf");
...
Когда я работаю на локальном компьютере, я получаю файл PDF в качестве вывода через мой веб-клиент.И через Swagger я также могу получить вывод файла.Но при развертывании на сервере IIS через веб-клиент я получаю пустой pdf, а через Swagger я вообще не получаю файл, а в теле ответа только следующий:
{
"Version": {
"_Major": 1,
"_Minor": 1,
"_Build": -1,
"_Revision": -1
},
"Content": {
"Headers": [
{
"Key": "Content-Type",
"Value": [
"application/pdf"
]
},
{
"Key": "Content-Disposition",
"Value": [
"attachment; filename=filename.pdf"
]
}
]
},
"StatusCode": 200,
"ReasonPhrase": "OK",
"Headers": [],
"RequestMessage": null,
"IsSuccessStatusCode": true
}