2010-05-31 8 views
0

J'ai développé une application Web ASP.Net MVC v1 et elle fonctionnait correctement sur notre serveur. Le client souhaitait passer à un autre serveur et le site ne s'exécutait pas sur le serveur du nouvel hôte.ASP.Net MVC Web App ne fonctionne pas

Les nouvelles spécifications du serveur:

  • Windows 2008
  • cadre ASP.Net de
  • ASP.Net MVC 2 (afaik son inclus avec .Net v4)
  • IIS 7.5 (afaik)

Message d'erreur:

Impossible de charger le fichier ou l'assembly 'System.Web.Mvc, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' ou une de ses dépendances. Le système ne peut pas trouver le fichier spécifié.

Je crois savoir qu'il devrait être rétrocompatible. L'application essaie-t-elle vraiment de s'exécuter dans ASP.Net MVC v1 lorsque v2 est disponible?

J'ai déjà essayé de déployer le fichier .dll MVC dans le dossier Bin, mais cela n'a pas fonctionné.

J'ai également essayé de changer toutes les valeurs de version system.Web.Mvc (dans le web.config pour l'application web) de 1.0.0.0 à 2.0.0.0, qui ne fonctionnait pas non plus.

Toute aide sera grandement appréciée.

+0

Essayez de compiler avec les dll de v2 (mettez à niveau votre machine dev vers la version serveur du framework mvc) –

+0

Essayez également de changer le pool d'applications sur le nouveau serveur en 'ASP.NET classique' –

+0

J'ai utilisé la solution s1mm0t, et à moins le site fonctionne maintenant, mais il y a maintenant des problèmes de routage. Merci pour l'aide. Je n'ai pas accès au serveur, car l'hôte est paranoïaque ou quelque chose comme ça. –

Répondre

0

Je suis d'accord avec tvanfosson, j'installerais MVC 1.0 sur votre serveur. Si pour une raison quelconque ce n'est pas possible, alors ajouter ce qui suit à votre fichier web.config:

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" 
         publicKeyToken="31bf3856ad364e35"/> 
     <bindingRedirect oldVersion="1.0.0.0" 
         newVersion="2.0.0.0"/> 
    </dependentAssembly> 
    </assemblyBinding> 
</runtime> 

Cela permettra d'assurer que tout en essayant de faire référence à des ensembles MVC 1.0 seront redirigés vers MVC 2.0 à la place.

Personnellement, je ne m'attendrais pas à ce que tout fonctionne et je le ferais d'abord dans un environnement de développement dans le cadre d'une mise à niveau complète vers MVC 2.0.

1

Je pense que la meilleure chose à faire serait d'installer MVC 1.0 sur votre serveur - il est séparé de MVC 2.0. Vous pouvez également migrer votre code vers la version 2.0, mais il y a quelques étapes à effectuer et il y a eu quelques changements de version entre les deux versions. En particulier, l'interface IValueProvider a changé de manière significative et, si vous l'avez utilisé, vous pouvez être amené à apporter des modifications importantes. Les versions 1.0 et 2.0 sont compatibles, en ce sens qu'elles peuvent toutes deux être installées sur le même système et que la plupart des constructions dans 1.0 continuent à fonctionner dans 2.0. Vous devez cependant effectuer quelques étapes pour migrer un site Web 1.0 vers un site Web 2.0 (comme vous l'avez découvert).

Questions connexes