2008-11-16 4 views
1

Un de mes sites Web se trouve sur un fournisseur d'hébergement partagé, exécutant .net 2.0 ou .net 3.0, mais pas 3.5 SP1..net 3.5SP1 sur un serveur .net 3.0 - Est-il possible d'utiliser le dossier/bin dans ASP.net?

Je me demande s'il serait encore possible d'utiliser 3.5 SP1 en déployant simplement tous les assemblages 3.5 dans le dossier/bin, puisque techniquement tout est toujours le 2.0 CLR. Je sais que si mon hôte met à jour des mises à jour, je dois les supprimer ou bien des choses étranges peuvent se produire, et que je me dirige vers le territoire non supporté à toute vitesse, mais y a-t-il un grand panneau indiquant "DON" T DO IT! " ou même "Ce n'est pas possible à cause de X"?

La raison principale est que je veux utiliser ASP.net MVC et éventuellement ADO.net Entity Framework, mais je ne veux pas faire de contrat avec un autre fournisseur d'hébergement.

Merci!

Répondre

1

Je suis sûr que vous ne pouvez pas le faire, mais googler sur les blogs suivants peuvent vous obtenir la réponse définitive:

ScottGu ScottHa BradA

Les problèmes seraient, je pense:

Vous souhaitez charger system.dll. Où cela ressemble-t-il? le GAC prend-il la précidence? (Je pense que oui), donc vous obtenez 2.0. Donc vous avez system.dll v2.0, et vous essayez d'utiliser une DLL (par exemple system.web.mvc) qui est lié à system.dll v3.5, mais est seulement dans vous/bin .... il devrait exploser bruyamment, ne pas avoir les mêmes contrats et autres.

Personnellement, je ne l'essaierais pas, surtout en production. Mais si vous pouvez prendre le site pendant un moment, essayez-le. Dans le pire des cas, vous devez supprimer les fichiers et re-télécharger l'ancien site.

YMMV :)

2

En théorie il peut être atteint, mais il est certainement pas recommandé.

Scott Hanselman a fait un post sur la façon d'exécuter ASP.NET MVC sur un serveur avec d'autres .NET 2.0 installé, voir - http://www.hanselman.com/blog/DeployingASPNETMVCOnASPNET20.aspx

Il est très bien un "fonctionne sur ma machine" post certifiée cependant.

Toutes les DLL sur un site ASP.NET peuvent résider dans/bin, à condition qu'elles soient correctement référencées. Ma suggestion - créer une machine virtuelle (MS Virtual PC est libre), installez juste .NET 2.0/.NET 3.0, puis copiez les DLL dont vous avez besoin à partir d'une installation .NET 3.5 (tip - vous trouverez les DLL dans% program files %\Assemblées de référence).

Je ne prends aucune responsabilité pour les dommages que vous causez à votre fournisseur de cette réponse

1

J'ai couru avec succès certains sites EntityFramework sur les hôtes qui avaient seulement .net 3.5 installé. J'ai copié le System.Data.Entity.dll et le System.Web.Entity à partir de Program Files%/Reference Assemblies. J'ai également dû modifier mon web.config et supprimer les références à System.Data.Entity et System.Web.Entity.

Mise à jour: cette technique ne fonctionnera pas pour DynamicData ou le contrôle Web EntityDataSource. Je crois qu'il a à voir avec le System.Web.WebExtensions.dll qui existe déjà dans le GAC à partir de 3.5

Questions connexes