Iis-7

如何使用 Visual Studio 為 SVG 和 Web 測試配置 IIS?

  • July 27, 2016

假設我有一個包含 svg 圖像的簡單網頁:

<img src="foobar.svg" alt="not working" />

如果我將此頁面設為靜態 html 頁面並直接查看它,則會顯示 svg。如果我輸入這個 svg 的地址——它就會顯示出來。

但是,當我將其製作為 .aspx 頁面並從 Visual Studio 動態啟動它時,我會得到alt文本。如果我輸入這個 svg 的地址(來自本地主機,而不是本地文件)——瀏覽器會嘗試下載它而不是顯示。

我已經在 IIS 中定義了 mime 類型(對於整個伺服器——“image/svg+xml”)並重新啟動了 IIS。效果和之前一樣。

**問題:**我應該多做些什麼?

更新

WireShark 不起作用(它在文件中),我也嘗試了 RawCap,但它無法跟踪我的連接(奇怪),幸運的是 Fiddler 工作:

來自客戶:

GET http://127.0.0.1:1731/svg/document_edit.svg HTTP/1.1
Host: 127.0.0.1:1731
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:10.0.1) Gecko/20100101 Firefox/10.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive

來自伺服器的回答:

HTTP/1.1 200 OK
Server: ASP.NET Development Server/10.0.0.0
Date: Thu, 16 Feb 2012 11:14:38 GMT
X-AspNet-Version: 4.0.30319
Cache-Control: private
Content-Type: application/octet-stream
Content-Length: 87924
Connection: Close

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
  xmlns:

*** FIDDLER: RawDisplay truncated at 128 characters. Right-click to disable truncation. ***

作為記錄,這裡是 Fiddler 的有用問答: https ://stackoverflow.com/questions/826134/how-to-display-localhost-traffic-in-fiddler-while-debugging-an-asp-net-applicati

從您的 Fiddler 跟踪來看,您似乎正在使用內置的 Visual Studio Web 伺服器為您的頁面提供服務:

Server: ASP.NET Development Server/10.0.0.0

如果這是由 IIS7 提供的,那麼我們會看到:

Server: Microsoft-IIS/7.5

內置的 Visual Studio Web 伺服器只有一組有限的 mime 類型可以提供服務,並且不知道您為 IIS7 設置的 mime 類型。不久前,我在 Stack Overflow 上寫了一個類似問題的答案:

使用 ASP.NET 開發伺服器設置 MIME 類型

內置伺服器將您的.svg文件提供為:

Content-Type: application/octet-stream

這可能是導致瀏覽器提示下載的原因。

在 Visual Studio 中,通過打開站點的項目屬性並從垂直選項卡列表中選擇“Web”選項卡來檢查您是否正在使用 IIS Express:

在此處輸入圖像描述

如果您沒有安裝 IIS 7.5 Express,您可以從這裡獲取它:

http://www.microsoft.com/download/en/details.aspx?id=1038

您將需要 Visual Studio 2010 Service Pack 1 才能充分利用:

http://support.microsoft.com/kb/983509

IIS Express 支持

Visual Studio 2010 SP1 使您能夠使用 Internet 資訊服務 (IIS) 7.5 Express 作為網站和 Web 應用程序項目的本地託管伺服器。

注意IIS 7.5 Express 不包含在 SP1 中,您必須單獨下載。有關詳細資訊,請訪問以下部落格: http ://weblogs.asp.net/scottgu/archive/2011/01/03/vs-2010-sp1-beta-and-iis-developer-express.aspx

完成後,您可以將.svgmime 類型添加到應用程序的web.config文件中:

<configuration>
  <system.webServer>
     <staticContent>
        <mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
     </staticContent>
  </system.webServer>
</configuration>

引用自:https://serverfault.com/questions/359904