2009-10-19 13 views
2

Aujourd'hui, nous avons essayé de mettre une application ASP.NET, j'ai aidé à développer sur une autre machine de production. Mais cette fois, nous avons eu une erreur très étrange. Tout d'abord, à partir de toutes les pages ASP.NET, seul Login.aspx fonctionnait. Les autres affichent juste un écran vide quand ils devraient être redirigés vers Login.aspx. La réponse HTTP est 200, mais pas de contenu.ASP.NET parti FUBAR sur une machine de production

Encore pire - lorsque j'essaie d'entrer l'adresse d'une page ASPX inexistante, j'obtiens aussi le HTTP 200! Ou, quand j'entre charabia dans un code de page ASPX existant (qui aurait dû être accessible sans connexion), je reçois également HTTP 200.

Si j'entre le nom d'une ressource inexistante (comme asdasd.jpg), je reçois le 404.

La redirection vers la page de connexion est écrite manuellement dans Global.asax. En effet, l'application doit également utiliser d'autres méthodes d'authentification. Je ne peux donc pas utiliser l'authentification par formulaire. Je soupçonnerais que Global.asax échoue, si ce n'est pour la page de connexion qui fonctionne.

Il convient également de noter que cette machine est à la fois un contrôleur de domaine et SharePoint. Bien que le site en question soit répertorié dans la liste d'exceptions de SharePoint.

+1

Pour la personne qui pense que cela appartient à ServerFault - le problème peut être une mauvaise configuration du serveur autant qu'une erreur dans mon code. –

Répondre

4

Je voudrais vérifier les points suivants:

  1. Est-ce l'application dans une application virtuelle ou son propre site et non pas seulement un répertoire virtuel?
  2. L'application dispose-t-elle de son propre App Pool? Si ce n'est pas le cas, le pool d'applications est partagé par les applications dans une version .net différente.
  3. La version .net de l'application est-elle la bonne? 1.1 ou 2.0?
  4. Les fichiers du système de fichiers disposent-ils des autorisations appropriées pour être accessibles via IIS?
  5. Avez-vous effectué une réinitialisation IIS?
  6. Créez une page test.aspx autonome dans votre dossier qui n'affiche que la date et l'heure et vérifiez qu'elle fonctionne.
  7. Faites en sorte que cette page test.aspx unique effectue une exception (par exemple, diviser par zéro) et voir quel est le résultat.
+0

Désolé, j'ai changé votre liste en une liste numérotée afin que je puisse répondre plus facilement. 1-Répertoire virtuel sous le site par défaut; 2 partagé avec CertServ; 3-Correcte; 4-Oui; 5-Redémarré le site par défaut et appdomain, pas de chance. Redémarrage complet du serveur prévu ce soir. 6 & 7 - bonne idée, va tester ça! –

+0

Je suggère de créer un nouveau pool d'applications pour cette application. La mise en commun permet de partager les ressources, mais en avoir une ou deux de plus n'aura pas d'impact énorme sur les performances. Cela peut réellement aider. Ce n'est que lorsque vous êtes dans le domaine des applications 10-20 + que le partage de pools est intégré. –

0

Plus d'informations requises. Quel Op Sys? Dans quel mode IIS s'exécute-t-il? Quelle version de .Net? Quelle version de SharePoint? (Pourquoi utilisez-vous votre contrôleur de domaine en tant qu'hôte Web?)

Cela fonctionne-t-il sur les autres machines de production dans lesquelles vous avez été déployé? Si oui, quelle est la différence entre cette machine et les machines? Avez-vous déployé la même manière?

Etes-vous sûr de frapper la bonne machine? Etes-vous sûr de trouver le bon site web? Quels composants ISAPI sont installés globalement et pour le site Web? Est-ce que .aspx est mappé au filtre ASP.Net ISAPI? Avez-vous des modules HTTP ou des gestionnaires HTTP configurés? Pouvez-vous changer l'aspx global pour écrire quelques messages afin que vous puissiez être sûr que le morceau de code que vous intéresse atteint?

Quelque chose à venir dans le journal IIS ou les journaux d'événements?

Addition:

Quelle version de .Net? Par la suite, la requête .jpg est traitée directement par IIS, c'est pourquoi vous obtenez le 404, mais la requête .aspx est traitée par quelque chose qui, sauf pour votre page de connexion, revient toujours 200.

En supposant que .aspx est correctement connecté à .Net, l'ordre de traitement est basé sur les filtres ISAPI (haut à bas puis global avant site), puis sur l'extension ASP.Net ISAPI (désolé j'ai dit que c'était un filtre plus tôt mais c'est en fait une extension). Ensuite, nous entrons dans le pipeline ASP.Net basé sur vos configs .Net, et appelons l'application HTTP (qui inclut votre code global.asax), tous les modules HTTP suivis finalement par un gestionnaire HTTP. Vos formulaires Web ASP.Net ne sont que des gestionnaires HTTP sophistiqués.

Cependant, la requête peut être répondue et terminée à partir de n'importe quel point.

Puisque votre code fonctionne sur d'autres machines, je suis tenté de pointer du doigt SharePoint s'il n'est pas installé sur les machines de travail. Est-ce SharePoint 2007? C'est aussi une application ASP.Net (je ne pense pas que 2003 était).

+0

Win2003, je ne sais pas ce que vous voulez dire sur "mode IIS". .NET 3.5. Version SP Je ne sais pas, va le savoir. DC en tant que webhost parce que c'est une application interne et c'est LE serveur central. Oui, cela fonctionne sur d'autres machines de production, le déploiement s'est fait de la même manière (via le Setup). Je frappe la bonne machine. Les composants ISAPI et les modules/gestionnaires HTTP - vont le découvrir. Les journaux d'événements sont muets. –

+0

IIS 6 (Win2003) a un mode de compatibilité IIS5. Le nom du processus de travail ASP.Net nous indiquera quel mode vous utilisez. – Swanny

Questions connexes