WebResource.axd не найден
Я не могу загрузить файлы script для загрузки на моем сайте. Все остальное отлично работает. Однако я не пробовал ScriptResource.axd.
Я проверял эту проблему как на cassini, так и на IIS7.
Я проверил мой 64-битный 4.0 web.config содержит сопоставление для WebResource.axd.
Мое системное время верное (я слышал, что могут быть проблемы с этим).
Я проверил, что он работает в других проектах, поэтому виновником должно быть мое веб-приложение.
Мое веб-приложение - это веб-приложение 4.0 MVC3.
Мой web.config можно найти здесь.
Эта ошибка убивает меня! Любая помощь будет оценена!
![Resource not found]()
Ответы
Ответ 1
Ваш файл web.config поражает (это не комплимент): в .NET Framework 4.0 он должен быть намного короче/легче.
Я думаю, что ваш обработчик объявлен в неправильном разделе:
<system.webServer>
<handlers>
<add name="WebResource" path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" />
</handlers>
</system.webServer>
Обычно обработчик WebResource.axd объявляется в разделе "system.web":
<system.web>
<httpHandlers>
<add path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" validate="True" />
</httpHandlers>
</system.web>
Ответ 2
Я разрешил подобную проблему, добавив разрешения на чтение для Everyone в папку, где была расположена сборка, содержащая встроенный ресурс. Ясно, что каждый человек чрезмерен, но это может помочь другим исследовать подобные проблемы.
В нашем случае некоторые загруженные ресурсы (так что я знаю, что AssemblyResourceLoader работал), и он работал на одной машине, но не в другой.
Этот ответ на другой вопрос помог мне определить, какие сборки не работают.
Ответ 3
Абсолютно решение: http://www.4guysfromrolla.com/articles/080906-1.aspx
когда вы проверяете код рамки .net: https://github.com/Microsoft/referencesource/blob/master/System.Web/Handlers/AssemblyResourceLoader.cs
вы можете увидеть трюк: по строке 606
WebResourceAttribute wra = FindWebResourceAttribute(assembly, resourceName);
если сборка не имеет атрибута WebResourceAttribute, она выдает ошибку 404.
Вы можете видеть в этой строке
if (resourceStream == null) {
if (resourceIdentifierPresent) {
LogWebResourceFailure(decryptedData, exception);
}
throw new HttpException(404, SR.GetString(SR.AssemblyResourceLoader_InvalidRequest));
}
поэтому добавьте атрибут WebResourceAttribute в файл AssemblyInfo.cs следующим образом:
[assembly: WebResource("FullNameSpace.SampleResourceFile.js", "text/javascript")]
Ответ 4
Я решил эту проблему на рабочей машине, снова запущенной aspnet_regiis:
%WINDIR%\Microsoft .NET\Framework\4.xxxx\aspnet_regiis -i
Вероятно, стандартная установка фреймворка 4 пошла не так.
Ответ 5
Бит поздно, но может помочь кому-то в будущем...
Я обнаружил, что это может произойти, если DLL веб-приложения, которое вы доставляете, новее, чем текущее время. Например, вы помещаете свое веб-приложение на рабочий сервер, где время сервера больше, чем на вашей машине разработки.
Получение синхронизации времени сервера с машиной dev помогло мне...
Ответ 6
У меня была эта проблема .axd с Umbraco на производственном сервере, это сводило меня с ума, пока я не узнал, что у сервера была другая безопасность, и при фильтрации запросов расширения .axd и .asmx не были указаны в Допустимые имена файлов по умолчанию, а у хостинговой компании был отключен параметр Разрешить запрещенные имена имен файлов, что отличается от моей машины разработки.