2011-01-25 1 views
15

Привет всем, у меня есть приложение .net 4, которое я только что развернул на производство. Приложение load отлично, за исключением того, что мои ссылки на js-файлы arent загружаются должным образом. Используя fiddler, я обнаружил, что вызовы ScriptResource.axd возвращают 404 ошибки.scriptresource.axd 404 ошибка в asp net 4 application - webresource работает нормально, хотя

Heres the kicker, страница также делает звонок через WebResource.axd, и этот запрос работает просто отлично.

Любые идеи, на что я могу проверить? Запустили IIS7. Он сбалансирован по нагрузке, но у нас есть машинные клавиши в конфиге. Я добавил раздел httpHandlers для scriptresource.axd .. но у меня все еще есть такая же проблема .. stumped ...

Обновление - мы думаем, что веб-браузер не знает, что такое файл axd. Есть ли какая-либо установка для .net, которая будет устанавливать сопоставления axd в iis?

ответ

2

«404» также может означать (при определенных условиях) «Не включено» или «не разрешено». У меня было некоторое время назад на сервере, и мне пришлось активировать расширение.

Другим способом было бы использовать Process Monitor, чтобы узнать, ищут ли реальные файлы в процессе IIS и не найдены.

+0

спасибо за контроль процесса –

1

Я столкнулся с этой проблемой. Вышеуказанные решения не работают для меня, но то, что сделал работу был комментарий от this page:

Эта проблема возникает, если файл web.config не находится в корневой папке или папка не является приложением в IIS.

Я решил его, скопировав файл web.config в корневую папку веб-сайта.

2

Два возможных решения от http://blogs.msdn.com/b/carloc/archive/2008/12/04/webresource-axd-or-scriptresource-axd-not-working.aspx:

  1. IIS Сжатие вызывает запросы WebResource.axd на провал. Отключите сжатие для веб-приложения IIS и повторите попытку.
  2. Web.config для корневого или специального приложения IIS имеет ScriptMaps для проверки * .axd или WebResource.axd - это реальный файл (которого нет). Прочтите ссылку для шагов исправления (по крайней мере, для IIS6 :-)).

Ссылка также имеет хорошую базу данных WebResource.axd, даже если она не решает вашу проблему напрямую. Проблема с проблемой WebResource.axd 404, к сожалению, возникает только тогда, когда Fiddler работает (!), Но это отдельный вопрос, чем опубликованный.

Наслаждайтесь! - Zephan

3

Я была такая же проблема сегодня, но это было вызвано правилом перезаписи, которая переписывание запроса от /ScriptResource.axd' to /some_application/ScriptResource.axd», которая не была действительной целью. Исправлена ​​ошибка, при которой правило игнорирования URL-адресов с .axd решило проблему.

+0

Да, я тоже. Хороший. –

+0

Это было для меня источником проблемы. Web.config был в порядке, режим отладки не помог, бесчисленное количество перезапусков ... все время ошибка была вызвана плохо написанными правилами перезаписи. Спасибо, Дэвид! – Emanuel

2

Убедитесь, что время на сервере не установлено до момента публикации сайта.

+0

Я не могу поблагодарить вас за снижение моего кровяного давления, вы продлили мою жизнь на несколько дней! –

1

Для меня проблема была в том, что мой сервер был настроен на неподходящее время. Это дата была установлена ​​на 6/12/2012 вместо 6/21/2013. Исправлена ​​дата и пуф! он начал работать :)

3

Это работает для меня:

Добавьте ниже обработчик вашего web.config:

<system.webServer> 
<handlers> 
<add name="ScriptResource" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode" /> 
+0

Это для IIS 7.x, и я не думаю, что вам абсолютно необходим preCondition = "integratedMode". –

+1

Вот версия .NET 4.0

2

Для меня все файлы AXD потерпели неудачу. Проведя всю неделю, пытаясь найти каждый ответ в Интернете, не повезло:

Я создал пустые файлы ScriptResource.axd и WebResource.axd, и он решил проблему. Мне было бы интересно узнать, какова настоящая проблема.

+0

Это сработало для меня. Спасибо ! – Erdogan

0

Это можно решить двумя способами. Один из них - установить параметр пула приложений IIS7 «Управление режимом трубопровода» в «Классический» при использовании параметра HttpHandlers. Если IIS7 и/или IIS7 Express должны использовать Integrated вместо Classic, нам нужно использовать параметры system.webServer.handlers с атрибутом precondition, установленным в интегрированный режим.

Это распространенная проблема при перемещении некоторых старых веб-приложений в облачные среды. Для более подробной информации обратитесь к этой статье:

http://www.ozkary.com/2015/12/404-error-axd-http-handler.html

Надеется, что это помогает.

Смежные вопросы