我有一个使用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>
发布于 2011-09-08 20:34:01
我看到你提到它刚转移到一个新的服务器。这是从IIS6到IIS7+的迁移吗?
IIS7使用<system.webServer\handlers>
而不是IIS6 <httpHandlers>
部分。最重要的是,如果你在旧的部分中有设置,那么默认情况下它会抛出一个错误,即使新的部分是正确填充的。
试试这个:
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true" />
<!-- modules here -->
</modules>
<handlers>
<!-- modules 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>
</system.webServer>
validateIntegratedModeConfiguration="false"
将允许您在不抛出错误的情况下填充httpHandlers部分(如果您在cassini / iis6服务器上调试,则非常有用),并且<handlers>
部分中的条目将为您的IIS7服务器配置它。
runAllManagedModulesForAllRequests="true"
并不是严格要求的,但如果您刚开始配置IIS7,您可能会发现自己需要它:)
发布于 2011-09-08 20:29:14
新服务器是否正在运行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>
发布于 2011-09-08 20:32:27
此外,请确保您拥有在处理程序部分中指定的确切版本。实际上,您不需要在web.config中指定版本、区域性和公共令牌参数即可使其工作。如果你在你的应用程序中使用多个版本,它们就在那里。如果不指定它们,服务器将使用它在项目中找到的第一个引用。因此,如果只使用程序集的一个版本,则可以省略参数。
https://stackoverflow.com/questions/7347897
复制相似问题