у меня есть минимум ASP.NET Handler (.ashx), который возвращает PDF-файл:Нет ответа от ASP.NET HTTP Handler-- только на конкретных клиентов HTTP на конкретных машинах
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "application/pdf";
context.Response.BinaryWrite(File.ReadAllBytes(context.Server.MapPath("~/files/GettingStarted.pdf")));
}
public bool IsReusable
{
get
{
return false;
}
}
}
Когда я бегу мой веб-приложение на IIS Express, приложение размещено на localhost: 45050. Если я перейду на localhost: 45050/handler1.ashx на моей главной машине разработки, PDF-файл сканируется, как ожидалось. Если я использую расширение DHC Chrome (HTTP-клиент) чтобы выполнить HTTP GET на локальном хосте: 45050/handler1.ashx, в HTTP 200 OK Код ответа возвращается вместе с бинарными данными:
ОДНАКО , если я запускаю тот же проект ASP.NET на другой машине, я сталкиваюсь с причудливыми проблемами. С проектом, запущенным локально на localhost: 45050, я все еще могу перейти на localhost: 45050/handler1.ashx в Chrome/Firefox/IE, чтобы загрузить файл. Но когда я использую расширение DHC для выполнения HTTP GET на localhost: 45050/handler1.ashx, ответа нет!
Я могу решимость локальный: 45050 (главная страница сайта) с помощью DHC на этой альтернативной машины. Сервер отвечает 200 OK и дает целевую страницу.
Но при работе с обработчиком, который возвращает двоичный контент, я не могу получить ответ с сервера с любым HTTP-клиентом, кроме строки URL-адреса браузера. Как браузеры могут разрешать ответ HTTP, когда автономные клиенты HTTP не могут? Кто-нибудь знает, что может здесь происходить? Что может привести к изменению поведения на разных машинах? Я пытаюсь обработать ответ в клиенте JavaScript, но я не получаю никаких данных.
Любая помощь была бы принята с благодарностью. Благодаря!
Не знаю, когда дело доходит до IIS Express, но для обычного IIS проблема может быть с типами MIME. У обоих экземпляров IIS есть сопоставление для расширения .pdf-файла? – Culme
Да, оба экземпляра имеют сопоставление для приложения/pdf. Я решил эту проблему. См. Мой ответ ниже. Спасибо, что посмотрели на это! – jforce