2011-06-08 68 views
15

我有一個windows azure部署(web角色),根據請求將一對視頻文件(mov和mp4)從Azure存儲中拖入它擁有本地的IIS存儲,然後通過瀏覽器訪問。Windows Azure - 在Windows Azure IIS存儲中提供未知(mp4)MIME類型

這可能聽起來很愚蠢,但我有很好的理由這樣做。

不幸的是,我無法訪問mp4文件。 mov很好,但mp4給我「404 - 文件或目錄未找到。」

我研究過這個,它似乎是因爲IIS不會返回未知文件類型,並且mp4必須屬於此類別。如果它是一個普通的IIS服務器,我將能夠註冊mp4 mime類型,但我不知道如何在Windows Azure中進行此操作。

我可以使用RDP手動執行此操作,但由於該角色經常被替換,因此這將不實用,這意味着我需要每次手動重新執行該操作。它必須通過其中一個配置文件或代碼完成。

任何人都可以幫忙嗎?

謝謝!

史蒂芬

回答

12

你能不能在web.config中添加自定義MIME類型?我只是碰到了這個鏈接:

http://www.iis.net/ConfigReference/system.webServer/staticContent/mimeMap

相關的web.config中的XML是:

<configuration> 
    <system.webServer> 
     <staticContent> 
     <mimeMap fileExtension=".syx" mimeType="application/octet-stream" /> 
     <mimeMap fileExtension=".tab" mimeType="text/plain" /> 
     </staticContent> 
    </system.webServer> 
</configuration> 

希望這有助於。

+1

這樣做的伎倆,謝謝。在我問之前,我*做了大量的谷歌搜索,但我必須一直使用錯誤的搜索條件! – 2011-06-08 13:45:13

+0

這可以添加到app.config而不是web.config? – 2017-09-13 20:52:36

0

配置MIME類型,創建一個新的web.config文件與此內容在視頻文件夾:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
    <staticContent> 
     <mimeMap fileExtension=".mp4" mimeType="video/mp4" /> 
     <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" /> 
     </staticContent> 
    </system.webServer> 
</configuration> 

這解決方案僅適用於Azure,本地項目可能不再有效。我的解決方案是使用「添加配置轉換」爲plublication與本地項目的空web.config文件:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
</configuration> 

當你右擊web.config中,選擇「添加配置變換「:

enter image description here

在web.Release.config文件添加到去配置標記的:

<system.webServer xdt:Transform="Insert"> 
    <staticContent> 
    <mimeMap fileExtension=".mp4" mimeType="video/mp4" /> 
    <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" /> 
    </staticContent> 
</system.webServer>