2009-09-07 9 views
1

J'avais un projet Web ASP.NET 2.0. J'ai bien travaillé. J'ai décidé de mettre à jour le site à 3.5. La mise à jour a bien fonctionné. J'ai ajouté un IHttpHandler qui doit inclure la ligne suivante dans le web.config:Serveur de développement ASP.NET ne souhaitant pas mettre à niveau vers .NET 3.5

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

Cette ligne dans le web.config génère l'erreur suivante: "Parser Message d'erreur: Impossible de charger le type « MyClass » " Cela ressemble à une faute d'orthographe typique dans le nom de la classe. Mais ça n'a pas l'air, je l'ai vérifié 1000 fois. Cependant, ce qui est vraiment étrange que sur le bas de la page "écran jaune de la mort" il dit:

Informations de version: Microsoft .NET Framework Version: 2.0.50727.3082; Version ASP.NET: 2.0.50727.3082

Ceci est vraiment étrange. Le projet est défini sur 3.5. Le seul morceau de code qui utilise les fonctionnalités 3.5 est l'implémentation IHttpHandler. Tout le reste du projet web est 2.0 compatible et fonctionne sans problème si j'exclue la ligne du web.config. Pourquoi est-ce?

[Je n'ai pas essayé avec IIS. J'utilise ASP.NET serveur de développement.]

[EDIT] Je dois m'excuser, c'était une question d'orthographe stupide comme je m'y attendais au premier tour. Mon implémentation IHttpHandler était dans une classe imbriquée et le nom de classe correct est "OuterClass + NestedClass" par rapport à OuterClass.NestedClass que j'ai utilisé dans mon fichier de configuration. Cependant, je remercie tous ceux qui ont contribué car j'ai appris de nouvelles choses sur le versionnage du CLR!

+0

Si votre serveur ne veut pas mettre à niveau, vous avez en effet un ordinateur très avancé. Cela vous at-il dit pourquoi il n'était pas d'accord? : P Je plaisante, mais la dernière fois que j'ai vérifié, tout ce qui est entre 2.0 et 3.5 est compatible avec 2.0. Même temps d'exécution, comme le dit Igal. –

Répondre

4

Je pense que vous devez utiliser le nom de type complet.

Comme:

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

et l'erreur contenant les informations de version de 2 est normall puisque le CLR n'a pas changé pour 3 et 3,5. les seuls changements étaient des assemblages sepperate supplémentaires et du sucre syntaxique (comme les propriétés automatisées sont une caractéristique du compilateur et non pas le runtime) ".net 4" viendra avec un nouveau CLR.

3

La version n'est pas un problème (je pense). .net 2 à 3.5 sp1 utilise le même temps d'exécution. Les plus récents sont juste de nouvelles bibliothèques et compilateurs. Donc, du point de vue asp.net, peu de choses ont changé.

0

Accédez aux propriétés du projet. Choisissez l'onglet Application. Changez le Framework cible en .Net Framework 3.5 si vous ne l'avez pas déjà fait.

2

ASP.NET 3.5 est vraiment 2.0 avec des extensions supplémentaires. Donc, tant que le serveur a installé 3.5, le message qui montre que vous pointez vers la structure 2.0 confirme que vous l'avez configuré correctement.

Le problème est probablement ce que olle a suggéré, que vous avez besoin du nom de classe complet, nom de l'assembly.

Confirmez également que vous avez la DLL dans votre dossier/bin et qu'elle est marquée comme une application si vous ne travaillez pas à partir de la racine de votre site.

Questions connexes