Я разрабатываю приложение MVC 3 с функциональностью «плагина».Плагины - это C # dll со всеми необходимыми ресурсами (CSS, изображениями и сценариями).
Я использовал расширение 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. Для всех встроенных ресурсов.
Я попытался установить исправление, упомянутое в вопросе на этом сайте, и изменить конфигурационные файлы, но ресурсы не загружены.
Я пытаюсь развернуть на 64-разрядной версии Windows 2008 Server R2 SP1.