我正在将Asp.net 2.0 Web应用程序从Windows Server 2003迁移到Windows Server 2012.我在Windows Server 2012中收到以下错误。
“HTTP错误500.19 - 内部服务器错误”。
配置错误:无法识别的属性' enableCompression'
错误代码:0x8007000d
问题出在以下配置元素中。
<add name="ScriptResource" enableCompression="false" preCondition="integratedMode"
verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, 

System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, 
 PublicKeyToken=31bf3856ad364e35"/>
当我删除属性enableCompression="false"
时,错误消失了,甚至ajax功能也正常工作。为什么Windows Server 2012中的属性抛出错误以及如何使其在Windows Server 2012中运行?
应用程序池设置如下所示。
答案 0 :(得分:2)
实际上,在查看官方IIS文档时,似乎处理程序集合的“add”元素不存在“enable compression”属性:
https://www.iis.net/configreference/system.webserver/handlers/add
这可以解释错误,以及为什么删除“启用压缩”属性不会导致进一步的问题。
事实是你不再需要这个属性了。如果你的应用程序在没有它的情况下工作,那么你很高兴。所有这些标记在ASP 2.0中都会压缩javascript,以便在将脚本传输到客户端时获得较小的性能提升。如果你的javascript文件大小很小,那么这是一个非常微不足道的收益。
更重要的是,请注意您的原始代码调用启用compression = false。这意味着原始代码由于某种原因显式禁用压缩。默认的现代行为也会禁用压缩。 因此,就压缩而言,新代码的行为与原始属性相同。
最后,为嵌入为汇编资源的javascript启用压缩/缓存的现代方法是利用scriptResourceHandler元素。
示例:
<scriptResourceHandler
enableCompression="true|false"
enableCaching="true|false" />
请参阅此处的MSDN文档:https://msdn.microsoft.com/en-us/library/vstudio/bb513840(v=vs.100).aspx