2010-05-11 9 views
1

J'ai deux sites Web sur IIS 6 qui jettent des erreurs de serveur lorsqu'ils sont définis sur ASP.NET 2 (via l'onglet ASP.NET dans les propriétés IIS) - un en raison d'une dépendance sur une bibliothèque intégrée dans .NET 4, l'autre car il s'agit d'une application N4/MVC2 qui spécifie la valeur 4.0 en tant que targetFramework dans config. Lorsque je modifie le paramètre dans l'onglet ASP.NET pour être .NET 4, les deux sites Web retournent simplement des erreurs «page introuvable», même lorsqu'elles sont pointées sur une page spécifique (par route dans l'application MVC, un. fichier aspx dans l'application ASP.NET).Ce qui pourrait causer une erreur avec. Net 4.0 et IIS 6?

J'ai essayé d'ajouter un filtre ISAPI générique à l'application MVC comme décrit quelques endroits en ligne, mais cela n'a rien fait (que ce soit sur la dll 2.0 ou sur la dll 4.0). Les versions de .NET 4 sur le serveur et dans Visual Studio sont les mêmes (4.0.30319).

Je suis en cours d'exécution sous IIS 6 sur Windows Server 2003.

Est-ce que quelqu'un a des idées que je pourrais être absent ici?

+0

double possible de [déployer bêta asp.net mvc à 6 iis causant 404] EQUIVAUT (http://stackoverflow.com/questions/239981/deploy-asp-net-mvc-beta -to-iis-6-provoquant-404s) – Malfist

+0

J'ai déjà essayé la solution la mieux votée là-bas, à la fois dans les dossiers v2 et v4, et pas de chance. Et cela ne résout pas le problème de l'application ASP.NET, puisqu'elle a de toute façon une extension .aspx (il n'est donc pas nécessaire de passer un caractère générique à aspnet_isapi.dll). –

Répondre

3

De toute évidence, votre application doit s'exécuter dans la version 4 du CLR. Cette partie est claire. Obtenir vos filtres ISAPI corrects peut être un combat. D'abord, vous devrez vous assurer (et je veux dire assurer, ne pas simplement jeter un coup d'œil et penser que c'est correct, copier/coller le chemin et s'assurer que tout pointe correctement) tous les filtres pointent vers les DLLs v4.0 correctes . Ensuite, assurez-vous que votre filtre générique n'a pas coché la case "Assurez-vous que le fichier existe". C'est ce qui m'a causé le plus de problèmes. Enfin, assurez-vous que vos autorisations sont correctes. Si cela ne fonctionne toujours pas, vous devez activer la journalisation de la fusion, vérifier vos journaux iis et peut-être même sortir Process Monitor pour voir ce que IIS essaie de faire lorsque vous vous connectez au serveur.

+0

Ouch, c'est tellement plus rude que je suis habitué. J'ai eu cette idée idiote que la mise à jour vers v4 serait simplement 'changer de projet, installer le framework sur le serveur, vérifier cela, changer ça, et voilà!' Je revérifierai tout ça quand je serai de retour le matin, je l'ai fait pour un site mais pas pour les deux ... Et le filtre générique n'a absolument pas cette case cochée, c'était clair dans les conseils de blog que j'ai lis. –

+0

@pete iis6 n'est pas exactement la chose la plus facile à mettre en place. Il y a tellement de morceaux et de pièces qui doivent fonctionner, et quand ils n'ont pas tout ce que vous obtenez, c'est ce putain de 404. – Will

+0

Merde. Je n'ai pas eu à faire pire que d'ajouter un site web auparavant, et ça a toujours marché ... et je peux faire fonctionner ça (bien, lancer une erreur de framework) si je lui dis d'utiliser .NET 2 ... I ' Je vais continuer à googler. –

4

Selon le commentaire de Pete, la réponse pour moi était:

Il était un paramètre dans IIS, Service Web Extensions. .NET 4 a été défini sur interdit. Permis, et tout travaillé

Questions connexes