IMO разрешение всем пользователям, выполненным как администратор на их локальных машинах, является довольно плохой идеей, если Вы только делаете его для создания установки программного обеспечения легче, учитывают вышеупомянутый комментарий о щелчке правой кнопкой и выполнении установки как администратор с собственными учетными данными.
От Вашей трассировки Скрипача кажется, что Вы служите своим страницам с помощью встроенного веб-сервера Visual Studio:
Server: ASP.NET Development Server/10.0.0.0
, Если бы это подавалось IIS7 затем, мы видели бы:
Server: Microsoft-IIS/7.5
встроенный веб-сервер Visual Studio только имеет ограниченный набор типов пантомимы, которым он может служить и не знает о пантомиме, вводит Вас набор для IIS7. Я описал решение подобной проблемы на Переполнении стека некоторое время назад:
ASP.NET встроенный сервер служит Вашему .svg
файл как:
Content-Type: application/octet-stream
Это, вероятно, что заставляет браузер запрашивать для загрузки.
В Visual Studio проверяют, что Вы используете IIS Express путем открытия свойств проекта сайта и выбора вкладки "Web" из вертикального списка вкладки:
, Если Вам не установили экспресс IIS 7.5, можно получить его отсюда:
Вам будет нужен Пакет обновления Visual Studio 2010 года 1, чтобы в полной мере воспользоваться:
http://support.microsoft.com/kb/983509
поддержка IIS Express
Visual Studio 2010 SP1 позволяет Вам использовать Internet Information Services (IIS) 7.5 Экспрессов в качестве локального хостинг-сервера для веб-сайта и веб-приложения Проекты.
экспресс IIS 7.5 Примечания не включен в SP1, и необходимо загрузить его отдельно. Для получения дополнительной информации посетите следующий блог: http://weblogs.asp.net/scottgu/archive/2011/01/03/vs-2010-sp1-beta-and-iis-developer-express.aspx
при выполнении этого, можно добавить .svg
тип пантомимы в файл приложения web.config
:
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
</staticContent>
</system.webServer>
</configuration>
Как упомянуто выше, Cassini игнорирует эти настройки в web.config, таким образом, нужно использовать IIS Express вместо этого (при настройках проекта VS) https://stackoverflow.com/questions/5924647/setting-mime-types-using-the-asp-net-development-server
Для надевания большего количества информации, как настроить типы MIME с помощью администратора, которого видят UI или использование web.config для IIS или IIS Express: http://4rapiddev.com/tips-and-tricks/add-mime-type-flv-mp4-in-iis-for-a-website-or-global/ и http://4rapiddev.com/tips-and-tricks/add-mime-type-flv-mp4-to-web-config-in-iis-7/
Я использовал ответ Kev:
<staticContent>
<remove fileExtension=".svg" />
<mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
</staticContent>
Мое обходное решение для этого должно было создать мой собственный httphandler локально, который перезаписал тип контента для svg.
public class SvgHandler : IHttpHandler
{
public bool IsReusable
{
get { return false; }
}
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "image/svg+xml";
context.Response.BinaryWrite(File.ReadAllBytes(context.Request.PhysicalPath));
context.Response.End();
}
}
и в web.config я добавил:
<httpHandlers>
<add verb="*" path="*.svg" type="SvgHandler" />
</httpHandlers>
с этим решением Вы не должны использовать экспресс IIS, можно просто использовать обычный сервер разработки в Visual Studio 2010
Я выполняю IIS7 и смог зафиксировать это путем щелчка правой кнопкой по серверу в IIS и выбора свойств. Затем я нажал на Типы MIME... кнопка. Я затем нажал New. Для расширения я ввел в .svg. Для Типа MIME я ввел в image/svg+xml. Я затем сохранил, все и сделало iisreset от командной строки. Работавший отлично.
Если у Вас есть доступ к IIS затем, это также решает проблему: http://httpjunkie.com/2014/884/svg-no-iis/