Подтвердить что ты не робот

Настройка типов MIME с использованием сервера разработки ASP.NET

Я добавил следующее в файл web.config, но это, похоже, игнорируется сервером разработки, встроенным в Visual Studio 2010. Кто-нибудь знает, как изменить типы MIME на сервере разработки?

<system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules runAllManagedModulesForAllRequests="true"/>
    <staticContent>
        <mimeMap fileExtension=".mp4" mimeType="video/mp4" />          
        <mimeMap fileExtension=".ogg" mimeType="audio/ogg" />          
        <mimeMap fileExtension=".oga" mimeType="audio/ogg" />          
        <mimeMap fileExtension=".ogv" mimeType="video/ogg" />          
        <mimeMap fileExtension=".webm" mimeType="video/webm" />     
    </staticContent>  
</system.webServer>
4b9b3361

Ответ 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.

Ответ 2

Просто у вас была эта проблема, но мне пришлось найти конфигурацию для IIS Express, чтобы добавить типы mime. Для меня он был расположен в C:\Users\<username>\Documents\IISExpress\config\applicationhost.config, и я смог добавить туда правильную "mime map".

Ответ 3

То же самое можно сделать, изменив типы MIME с помощью диспетчера IIS, как указано - Здесь