Переопределение типа mime с помощью VS Web Dev Server



Я хотел бы подавать xbaps с сервера VS web dev (cassini) в Firefox, но при подаче с сервера dev Firefox предлагает загрузить этот файл. Насколько я могу судить, это связано с тем, что сервер dev обслуживает файл xbap с типом mime "application/octet-stream" вместо "application/x-ms-xbap", который работает при обслуживании из IIS.



Кто-нибудь знает, как изменить тип mime, который сервер dev использует для *.файлы xbap?

641   3  

3 ответов:

Ты не можешь.WebHost довольно неуклюж при выдаче типов контента и имеет очень ограниченный диапазон конкретных типов контента.

Вы можете использовать CassiniDev. Последняя версия обеспечивает расширенную поддержку типа контента, в том числе .xbap.

См. http://cassinidev.codeplex.com/SourceControl/changeset/view/49870#894160 для полного списка поддерживаемых типов.

Update : ваша проблема может заключаться в том, что вы установили FF после 3. 5sp1 и не имеете NPWPF.dll в каталоге плагинов FF. У вас есть этот файл?

Обновление 2 Я только что выпустил версию CassiniDev, которая является отличной заменой для сервера разработки Visual Studio. Его усовершенствования включают улучшенную поддержку типов контента и интегрированное ведение журнала/просмотр трафика.

Http://skysanders.net/subtext/archive/2010/05/22/release-cassinidev-for-visual-studio-2008-a-drop-in.aspx

Сейчас, вероятно, уже слишком поздно, но для тех, кто столкнулся с этой проблемой, вот как ее решить:

Я решил его для mp4 видео, но это тот же принцип для любого mime, просто пересмотрите свои потребности.

Я предполагаю, что вы используете vs2012, создаете IHttpHandler и копируете в него этот код:

public class Mp4Handler : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "video/mp4";
        context.Response.BinaryWrite(File.ReadAllBytes(context.request.PhysicalPath));
        context.Response.End();
    }

public bool IsReusable{ get{ return false;}}
}

И не забудьте добавить в свой веб.конфигурационный файл в разделе Система.веб:

<httpHandlers>
    <add verb="*" path="*.mp4" type="[your-namespace].Mp4Handler" />
</httpHandlers>

Поступая так, вы больше не будете нуждаться в CassiniDev, чтобы правильно служить mp4, однако, CassiniDev не зло и стоит сохранение-без него я не смог бы проверить, в чем проблема была в первую очередь.

Обратите внимание, что с VS 2010 SP1 теперь можно использовать IIS Express вместо Cassini для веб-проектов, что дает вам полный контроль над типами MIME.

Дополнительная информация: http://blogs.msdn.com/b/webdevtools/archive/2011/03/14/enabling-iis-express-support-in-vs-2010-sp1.aspx

Comments

    Ничего не найдено.