WebResource.axd не найден - PullRequest
       18

WebResource.axd не найден

11 голосов
/ 12 декабря 2011

Я не могу загрузить файлы сценариев на свой сайт. Все остальное работает отлично. Однако я не пробовал ScriptResource.axd.

Я подтвердил, что эта проблема существует как на cassini, так и на IIS7.

Я подтвердил, что мой 64-битный файл web.config содержит отображение для WebResource.axd.

У меня правильное системное время (я слышал, что могут быть проблемы с этим).

Я убедился, что он работает в других проектах, поэтому виновником должно быть мое веб-приложение.

Мое веб-приложение - это веб-приложение 4.0 MVC3.

Мой web.config можно найти здесь .

Эта ошибка убивает меня! Любая помощь будет оценена!

Resource not found

Ответы [ 6 ]

5 голосов
/ 18 декабря 2011

Ваш файл 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>
4 голосов
/ 21 апреля 2016

Абсолютно решение: http://www.4guysfromrolla.com/articles/080906-1.aspx когда вы проверяете код .net framework: 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 голосов
/ 23 августа 2012

Я решил эту проблему на рабочем компьютере, работающем снова aspnet_regiis :

%WINDIR%\Microsoft .NET\Framework\4.xxxx\aspnet_regiis -i

Вероятно, стандартная установка фреймворка 4. пошла не так.

4 голосов
/ 31 мая 2012

Я решил похожую проблему, добавив разрешения на чтение для всех в папку, в которой находилась сборка, содержащая встроенный ресурс.Очевидно, что все перебивают, но это может помочь другим исследовать подобные проблемы.

В нашем случае некоторые ресурсы загружены (так что я знаю, что AssemblyResourceLoader работал), и это работало на одной машине, но не на другой.

Этот ответ на другой вопрос помог мне определить, какие сборки не работали.

3 голосов
/ 19 июля 2013

Немного поздно, но может помочь кому-то в будущем ...

Я обнаружил, что это может произойти, если DLL поставляемого вами веб-приложения новее, чем текущая дата. Например, вы помещаете ваше веб-приложение на рабочий сервер, где время сервера старше, чем на компьютере разработчика.

Синхронизация времени сервера с устройством dev сделала меня ...

0 голосов
/ 16 апреля 2015

У меня была эта проблема .axd с Umbraco на рабочем сервере, она сводила меня с ума, пока я не обнаружил, что сервер имел другую безопасность, и в разделе Фильтрация запросов расширения .axd и .asmx не были перечислены в Разрешено имен файлов по умолчанию, и у хостинговой компании был установлен параметр Разрешить незарегистрированные расширения имен файлов , который отличался от моего компьютера для разработки.

...