Я разрабатываю приложение MVC 3 с функциональностью «плагин». Плагины - это C# dll со всеми необходимыми ресурсами (css, изображениями и скриптами).Как обслуживать сборку встроенных ресурсов от MVC 3 и IIS7?
Я использовал расширение Visual Studio MvcRazorClassGenerator для создания предварительно скомпилированных представлений.
Я извлечь внедренный ресурс, используя следующий код:
public FileStreamResult EmbeddedResource(string pluginName, string resourceName)
{
Assembly assembly = PluginCache.GetAssembly(pluginName);
if (assembly != null)
{
string tempResourceName =
assembly.GetManifestResourceNames()
.ToList().FirstOrDefault(f => f.EndsWith(resourceName));
return new FileStreamResult(
assembly.GetManifestResourceStream(tempResourceName),
GetMIMEType(tempResourceName));
}
return null;
}
В воззрениях я следующий код для доступа к ресурсам:
@Url.Content("/Common/EmbeddedResource/PluginName/[AssemblyNamespace].Content.Images.blank.gif")
Все работает отлично, пока я нахожусь в среде разработки , все ресурсы загружаются и отображаются правильно, но при развертывании начинается кошмар.
IIS 7.5 продолжает поиск статического файла с именем «/Common/EmbeddedResource/PluginName/[AssemblyNamespace].Content.Images.blank.gif», а не встроенным файлом, что дает мне ошибку 404 для всех встроенных ресурсов.
Я попытался установить исправление, упомянутое в вопросе на этом сайте, и изменить файлы конфигурации, но ресурсы не загружены.
Я пытаюсь установить на Windows 2008 Server R2 SP1 64 бит.
да, я буду смотреть на эти рамки, (вероятно, для использования в будущем, потому что я почти закончил этот проект, и мой босс, не был бы счастлив, если я предлагаю повторно инженер все;)). Но в отношении моего вопроса кажется, что IIS не вызывает действие, если в URL есть «точка» ... Я сделал обходной путь для этого, но в это время это просто ... «любопытство», –