Внутренняя ошибка сервера в разделе httpHandlers файла web.config
У меня есть сайт asp.net с использованием элементов управления формы от Telerik. Он просто перешел на новый сервер, но я все равно получаю 500 внутренних ошибок сервера.
Удаление раздела httpHandlers файла web.config приводит к ошибке сервера, хотя тогда он жалуется, что на странице есть элемент управления Telerik. Весь файл конфигурации действителен для XML. Что-то не так с этим кодом?
<httpHandlers>
<add path="Telerik.Web.UI.WebResource.axd" verb="*" type="Telerik.Web.UI.WebResource, Telerik.Web.UI, Version=2008.2.826.20, Culture=neutral, PublicKeyToken=121fae78165ba3d4" validate="false"/>
</httpHandlers>
Ответы
Ответ 1
Я вижу, вы упомянули, что он только что перешел на новый сервер. Была ли это миграция IIS6 на IIS7 +?
IIS7 использует <system.webServer\handlers>
вместо раздела IIS6 <httpHandlers>
. Вдобавок к этому он по ошибке выдает ошибку, если у вас есть настройки в старом разделе, даже если новый раздел заполнен правильно.
Попробуйте следующее:
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true">
<!-- modules go here -->
</modules>
<handlers>
<!-- modules go here -->
<add name="Telerik.Web.UI.WebResource" path="Telerik.Web.UI.WebResource.axd" verb="*" type="Telerik.Web.UI.WebResource, Telerik.Web.UI, Version=2008.2.826.20, Culture=neutral, PublicKeyToken=121fae78165ba3d4" />
</handlers>
validateIntegratedModeConfiguration="false"
позволит вам сохранить ваш раздел httpHandlers, не забрасывая ошибку (полезно, если вы отлаживаете сервер cassini/iis6), и запись в разделе <handlers>
будет настраивать его для вашего сервера IIS7.
runAllManagedModulesForAllRequests="true"
не требуется строго, но вам, вероятно, понадобится его, если вы новичок в настройке IIS7:)
Ответ 2
Возможно ли, что на новом сервере работает IIS7?
Затем попробуйте это
<system.webServer>
<handlers>
<add path="Telerik.Web.UI.WebResource.axd" verb="*" type="Telerik.Web.UI.WebResource, Telerik.Web.UI, Version=2008.2.826.20, Culture=neutral, PublicKeyToken=121fae78165ba3d4" validate="false"/>
</handlers>
</system.webServer>
Ответ 3
Кроме того, убедитесь, что у вас есть точная версия, указанная в разделе "Обработчики". Вам действительно не нужны параметры Version, Culture и Public Token, указанные в вашем web.config, чтобы он работал. Они там, если вы используете более одной версии в своем приложении. Если они не указаны, сервер будет использовать первый, который будет найден в вашем проекте. Итак, если вы используете только одну версию сборки, вы можете опустить параметры.
Ответ 4
Убедитесь, что у вас есть ссылка Telerik DLL Telerik.Web.UI.dll
в вашем проекте и что для параметра CopyLocal установлено значение "true". Кроме того, убедитесь, что (с помощью File | Properties) у вас есть правильная версия на сервере.