Ответ 1
Встроенный веб-сервер разработки в Visual Studio (Cassini) не знает о <system.webServer>
, только эти IIS7.x или IIS7.5 Express будут использовать эти настройки.
Также статические типы содержимого файла в веб-сервере разработки Visual Studio жестко закодированы.
Из Microsoft.VisualStudio.WebHost.Connection
(разобран с использованием .NET Reflector):
private static string MakeContentTypeHeader(string fileName)
{
string str = null;
FileInfo info = new FileInfo(fileName);
switch (info.Extension.ToLowerInvariant())
{
case ".bmp":
str = "image/bmp";
break;
case ".css":
str = "text/css";
break;
case ".gif":
str = "image/gif";
break;
case ".ico":
str = "image/x-icon";
break;
case ".htm":
case ".html":
str = "text/html";
break;
case ".jpe":
case ".jpeg":
case ".jpg":
str = "image/jpeg";
break;
case ".js":
str = "application/x-javascript";
break;
}
if (str == null)
{
return null;
}
return ("Content-Type: " + str + "\r\n");
}
Честно говоря, с появлением IIS7.5 Express я не понимаю, почему вы хотите использовать встроенный веб-сервер. Cassini может быть причиной такой путаницы, когда дело доходит до времени развертывания на производственном сервере, потому что это не похоже на реальную сделку (безопасность, конфигурация и т.д.), Тогда как если вы можете заставить свой сайт работать на IIS7.5 Express, то там довольно высокий вероятность того, что развертывание на сервере IIS7.5 будет "просто работать".
Я не удивлюсь, если Microsoft выдержит сервер Cassini из следующей версии Visual Studio, учитывая, как легко работать с IIS7.5 Express.