Назад | Перейти на главную страницу

Ошибка двоичного потока IIS7

Я изо всех сил пытаюсь понять суть проблемы, поэтому примите мои извинения, если вопрос нечеткий. Я запускаю классическое приложение asp в IIS7, и, похоже, все работает нормально, за исключением одной проблемы, которая меня озадачила.

По сути, файлы можно загружать с сервера, что выполняется с помощью метода sendBinary компонента Persits ASP Upload. Этот компонент отлично работает для загрузки и т. Д. Это просто загрузка у меня проблема.

Странно то, что у меня не может быть чистой asp-страницы, обслуживающей двоичный файл. Во II6 все работает нормально, но во II7 есть странная проблема. Например, это не работает.

<%
SET objUpload = server.createObject("Persits.Upload")
    objUpload.sendBinary "D:\sites\file.pdf", true, "application/octet-binary", true
SET objUpload = NOTHING
%>

Однако, если я помещаю что-нибудь перед кодом asp, файл обслуживается нормально.

serve this
<%
SET objUpload = server.createObject("Persits.Upload")
    objUpload.sendBinary "D:\sites\file.pdf", true, "application/octet-binary", true
SET objUpload = NOTHING
%>

Я также могу сначала написать что-нибудь в поток ответов, и он отлично работает.

<%
Response.Write("server this")
SET objUpload = server.createObject("Persits.Upload")
    objUpload.sendBinary "D:\sites\file.pdf", true, "application/octet-binary", true
SET objUpload = NOTHING
%>

Есть ли у кого-нибудь идеи о том, что может быть причиной этого, или кто-нибудь сталкивался с подобной ситуацией? Я уверен, что это как-то связано с настройкой в ​​IIS 7.

Это известная проблема с IIS7.5 (Windows 2008). Теперь у меня по умолчанию используется "фрагментированная кодировка", и вы больше не можете отправлять заголовок "длина содержимого".

Persits aspupload устанавливает его, когда вы передаете "true" для второго параметра.

Я не уверен, почему MSFT не исправила эту ошибку.

Вы можете найти обходной путь по адресу: http://support.persits.com/show.asp?code=PS100721176