Изменение заголовка содержимого типа статических файлов в IIS 6 без доступа к IIS - PullRequest
1 голос
/ 28 июня 2011

Я пытаюсь изменить тип содержимого статических файлов, разделенных IIS6, на общем хосте, где у меня нет доступа к IIS. Я попытался

<system.webServer>
 <staticContent>
   <remove fileExtension=".manifest" />
   <mimeMap fileExtension=".manifest" mimeType="text/cache-manifest" />
 </staticContent>
</system.webServer>

В моем файле web.config, но он появляетсяработать только с IIS7 В случае, если после этого примера возникнут какие-либо сомнения, я пытаюсь изменить все статические файлы, обслуживаемые с расширением .manifest, чтобы иметь текстовый / кэш-манифест mimeType

Спасибо.

1 Ответ

2 голосов
/ 03 августа 2011

Если вы довольны изменением типов MIME для всего веб-сервера И можете запустить код ASP.NET, этот фрагмент будет добавлять типы MIME для вас в IIS 6 (код: http://forums.silverlight.net/p/138545/449294.aspx):

try
{
    string ext = ".xap";
    string mime = "application/x-silverlight-app";

    using (DirectoryEntry mimeMap = new DirectoryEntry("IIS://localhost/MimeMap"))
    {
        bool found = false;
        foreach (MimeMap m in mimeMap.Properties["MimeMap"])
        {
            if (m.Extension == ext)
            {
                // found existing, update
                m.MimeType = mime;
                found = true;
            }
        }

        // not found, create new
        if (!found)
        {
            mimeMap.Properties["MimeMap"].Add(new MimeMapClass { Extension = ext, MimeType = mime });
        }

        // commit changes
        mimeMap.CommitChanges();
    }
}
catch (Exception e)
{
    // Log exception to event viewer
    // Show message stating to configure mime type manually
}            

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

Надеюсь, это поможет ...

...