Fala galera, tudo certo?

Um post rápido mostrando como resolvi um problema que tive com MIME Type no asp.net mvc em um ambiente onde eu não tinha acesso ao servidor de produção.

Algum tempo atrás tive um problema com videos no asp.net mvc, onde o arquivo não estava sendo carregado para o usuário. Nessa situação, eu tinha acesso ao servidor de produção e para resolver o problema simplesmente fui até o IIS e adicionei o MIME Type referente a extensão do vídeo que eu precisava. Veja na Figura 1 e na Figura 2 como fazer isso:

Figura2 - Configuração de MIME Type no IIS. Figura 1 - Configuração de MIME Type no IIS.

Figura 3 - Configuração de MIME Type no IIS. Figura 2 - Adicionando MIME Type no IIS.

Bom, embora a solução acima tenha funcionado, existem casos onde não temos acesso ao IIS que está sendo executado em produção e para fazer esse tipo de configuração só nos resta o web.config.

Solução através do web.config

Pelo web.config, dentro de <system.webServer>, caso não exista, crie a tag <staticContent> e adicione o MIME Type que você está precisando, no meu caso era o  <mimeMap fileExtension=".woff" mimeType="font/x-woff" />. Feito isso, o IIS já reconhecerá arquivos com extensão especificada no atributo fileExtension.

A solução do web.config resolveu meu problema no servidor de produção, entretanto gerou um problema local, onde ele diz que já existe uma configuração para o mime type em questão e que essa configuração não pode ser duplicada, veja a imagem do erro na Figura 3:

Figura 2 - Erro web.config Figura 3 - Erro web.config

Resolvi o que estava acontecendo no servidor de produção, mas criei um problema na minha maquina (normal, né? rs)

Para corrigir o problema local, eu poderia remover a configuração de MIME Type do web.config e NUNCA esquecer de colocá-la novamente antes de fazer um deploy em produção. Claro que um dia eu ia esquecer de algum dos passos, por isso tinha que encontrar uma forma de automatizar isso. E encontrei, veja como fazer no Snippet 1.

//Snippet 1

[sourcecode language="xml"]
<staticContent>
<remove fileExtension=".woff" />
<mimeMap fileExtension=".woff" mimeType="font/x-woff" />
</staticContent>
[/sourcecode]

Basicamente, eu automatizei a remoção da configuração antes de adicioná-la e assim tive meu problema resolvido em ambos ambientes (desenvolvimento e produção).

Tem alguma outra solução? Deixe nos comentários.

Até o próximo post.