У меня странная проблема, и ничего особенного. Вывод не будет отправлен в браузер, пока я не добавлю пробел перед выводом. Я обнаружил «обходной путь» при попытке сделать вывод = «тест». Я просто пытаюсь отобразить html часть почтового сообщения как веб-страницу. Если я скопирую значение переменной «output» и сохраню как. html, браузер файлов отобразит его. Проблема в том, что данные не отправляются в браузер из iis express.
Обновление : БОЛЬШОЙ КЛЮЧ: Я получил эту проблему только в одном указанном c почтовом сообщении (возможно, другие тоже) и у многих сообщений проблем нет. Это может быть связано с выходной кодировкой по умолчанию UTF-8 против non-utf8, я не уверен. html часть кодировки символов сообщения - ISO-8859-9 (Turki sh), но вывод - обычная переменная string . Я преобразовал строку output в двоичный поток и исследовал числа ascii, в двоичном значении строки нет невидимых байтов.
Код:
// output = " " + output; // OK: Browser displays html page as expected
// output += " "; // Not OK: No data at browser
// output = "test"; // OK: Browser displays text "test"
Response.Write(output); // Without modification no data at browser
Экран отладчика:
Все заголовки браузера выглядят нормально, я получил ответ, но он пуст:
Ответ пуст, когда первый символ не является пробелом:
Ответ в порядке, когда я добавляю пробел в качестве первого символа:
В начале исходного кода веб-страницы вместо пробела появляется неожиданный перевод строки:
Визуализатор текста отладчика до изменения вывода:
Визуализатор текста отладчика после изменения вывод:
Вопрос: Почему вывод строки не отправляется в браузер здесь?