《iis7分析器错误消息 未能创建类型》
当遇到“iis7分析器错误消息 未能创建类型”时,解决方案是多方面的。可以尝试检查Web.config文件中与组件相关的配置是否正确,确保IIS的应用程序池设置与应用程序需求匹配,并且确认所需的dll文件已正确注册到全局程序集缓存(GAC)或放置在正确的目录下。
一、Web.config配置检查
Web.config文件的配置对IIS应用的正常运行至关重要。如果其中关于组件类型的定义有误,就会出现“未能创建类型”的错误。例如可能存在如下配置:
xml
<configuration>
<system.web>
<httpHandlers>
<add verb="*" path="*.asmx" type="WrongTypeNameSpace.WrongTypeName, WrongAssemblyName"/>
</httpHandlers>
</system.web>
</configuration>
这里type
属性中的命名空间、类型名或者程序集名称错误都会导致问题。需要将其修改为正确的,如:
xml
<configuration>
<system.web>
<httpHandlers>
<add verb="*" path="*.asmx" type="CorrectTypeNameSpace.CorrectTypeName, CorrectAssemblyName"/>
</httpHandlers>
</system.web>
</configuration>
二、应用程序池设置
不同的应用程序可能对.NET框架版本等有不同要求。如果应用程序使用的是.NET 4.0,而应用程序池设置为.NET 2.0,就可能出现该错误。可以在IIS管理器中找到对应站点的应用程序池,将其.NET Framework版本更改为正确版本,如将.NET CLR版本从v2.0.50727更改为v4.0。
三、dll文件处理
对于一些自定义组件,其对应的dll文件要确保已注册到GAC。可以通过命令行使用gacutil工具来注册,打开命令提示符(以管理员身份),输入类似以下命令(假设dll名为MyComponent.dll):
gacutil -i "C:PathToMyComponent.dll"
如果不想注册到GAC,也可以将dll文件直接复制到应用程序的bin目录下。同时要注意dll文件是否有依赖关系,如果有依赖的其他dll文件也要保证能够被正确加载。还要确保这些dll文件没有损坏,可以重新编译项目生成新的dll文件来排除这种可能性。通过以上多种思路去排查和解决,一般能够较好地应对这个错误。