web.config的httpHandlers部分的内部服务器错误

时间:2011-09-08 12:19:10

标签: asp.net web-config telerik

我有一个使用Telerik表单控件的asp.net网站。它只是移动到一个新的服务器,但我不断收到500内部服务器错误。

删除web.config的httpHandlers部分会导致服务器错误消失,尽管如果页面上有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>

4 个答案:

答案 0 :(得分:39)

我看到你提到它刚搬到新服务器。这是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,则可能会发现自己需要它:)

答案 1 :(得分: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>

答案 2 :(得分:2)

此外,请确保您具有在“处理程序”部分中指定的确切版本。实际上,您并不需要在web.config中指定的Version,Culture和Public Token参数才能使其正常工作。如果您在应用程序中使用多个版本,它们就在那里。如果没有指定它们,服务器将使用它在项目中引用的第一个。因此,如果您只使用一个版本的程序集,则可以省略参数。

答案 3 :(得分:0)

确保您的项目中引用了Telerik DLL Telerik.Web.UI.dll,并且CopyLocal设置为“true”。此外,请确保(使用“文件”|“属性”)在服务器上具有正确的版本。