2009-09-07 52 views
1

我有一个ASP.NET 2.0 web项目。工作很好。我决定将该网站升级到3.5。升级工作正常。我已经加入一个的IHttpHandler其需要包括在web.config下列行:ASP.NET开发服务器不愿升级到.NET 3.5

<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项目都是2.0兼容的,如果我从web.config中排除该行,则可以毫无问题地工作。 这是为什么?

[我没有尝试使用IIS。我使用ASP.NET开发服务器。]

[编辑]我必须道歉,这是愚蠢的拼写问题,正如我在第一轮中预期的那样。我的IHttpHandler实现是嵌套类,正确的类名是我在配置文件中使用的“OuterClass + NestedClass”与OuterClass.NestedClass。但是,我感谢所有参与者,因为我在CLR版本上学到了新东西!

+0

如果你的服务器不愿意升级,那么你确实有一台非常先进的电脑。它有没有告诉你为什么不同意? :P只是开玩笑,但上次我检查,2.0和3.5之间的任何内容都与2.0兼容。正如Igal所说,它的运行时间相同。 –

回答

4

我认为你需要使用完全限定的类型名称。

喜欢:

<add verb="GET,POST" path="MyOperation.asmx" type="Your.Namespace.MyClass, assembly.name"/> 

和含2的版本信息的错误是normall由于CLR没有改变3和3.5。唯一的变化是额外的sepperate程序集和语法suggar(如自动化属性是编译器的功能而不是运行时)“.net 4”将带有一个新的CLR。

3

该版本不是一个问题(我认为)。 .net 2到3.5 sp1使用相同的运行时间。较新的只是新的库和编译器。所以从asp.net的角度来看没有太大的改变。

0

转到项目属性。选择应用程序选项卡。如果你还没有这样做,请将目标框架更改为.Net Framework 3.5。

2

ASP.NET 3.5实际上是2.0的附加扩展。所以,只要服务器安装了3.5,那么显示你指向2.0框架的消息就证明你已经正确设置了它。

这个问题可能是olle建议的,您需要完整的类名称,程序集名称。

此外,请确认您的/ bin文件夹中有该dll,并且如果您不是从您的网站的根目录开始工作,那么它将被标记为应用程序。