我有一个 ASP.NET 2.0 Web 项目。工作得很好。我决定将网站升级到 3.5。升级工作正常。我添加了一个 IHttpHandler,需要在 web.config 中包含以下行:
<add verb="GET,POST" path="MyOperation.asmx" type="MyClass"/>
web.config 中的这一行生成以下错误:“解析器错误消息:无法加载类型'MyClass'。 ”这听起来像是类名中的典型拼写错误。但看起来不是,我检查了 1000 次。然而,真正奇怪的是,“黄屏死机”页面的底部写着:
版本信息:Microsoft .NET Framework 版本:2.0.50727.3082;ASP.NET 版本:2.0.50727.3082
这真的很奇怪。该项目设置为3.5。唯一使用 3.5 特性的代码是 IHttpHandler 实现。如果我从 web.config 中排除该行,则该 Web 项目的所有其余部分都与 2.0 兼容并且可以正常工作。为什么是这样?
[我没有尝试使用 IIS。我使用 ASP.NET 开发服务器。]
[编辑] 我必须道歉,这是我在第一轮中预期的愚蠢的拼写问题。我的 IHttpHandler 实现在一个嵌套类中,正确的类名是“OuterClass+NestedClass”与我在配置文件中使用的 OuterClass.NestedClass。但是,我要感谢所有做出贡献的人,因为我在 CLR 版本控制方面学到了新东西!