string filePath = Properties.Settings.Default.audioFilePath.ToString() + " ";
filePath = filePath.Replace(" ", ""); // iis6 on 2003 server seems to add a space to the end of the path
string audioFilename = filePath + filename;
return File(audioFilename, "audio/wav");
это очень озадачивает меня. На моей машине разработчика это работает отлично, и путь правильный. На производственном сайте мой IIS6 добавляет пробел в переменную filePath. Я добавил строку для замены пробелов на «» и даже добавил дополнительную строку на моем локальном компьютере, чтобы убедиться, что она работает.
Я поместил тестовое представление на место, чтобы передать путь, на IIS6 я получаю:
c: \ messages \ voicemail \ filed \ <</p>
Обратите внимание на пробел между \ filed \ и <(я добавил <, чтобы я мог видеть пространство) </p>
На моем компьютере разработчика я получаю
C: \ __ DEV \ _proj \ тзд \ сообщения \ <</p>
Я меняю путь в файле web.config, но пробелов нет, и в любом случае я удаляю пробелы, но где-то, когда он подается в браузер, кажется, IIS6 добавляет пробел ??? Пробовал также разные браузеры, IE и Firefox, оба результата одинаковые, поэтому он указывает на IIS ????
Ответ: это была отделка, и ответ, что это не пробел, был мертв. Это был НЧ.
фиксированный код:
string filePath = Properties.Settings.Default.audioFilePath;
filePath = filePath.TrimEnd(); // iis6 on 2003 server seems to add a space to the end of the path
string audioFilename = filePath + filename;