我有一个使用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>
答案 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”。此外,请确保(使用“文件”|“属性”)在服务器上具有正确的版本。