2010-10-07 32 views
0

Nous avons récemment installé une application Web sous Tomcat 6 qui est connectée via l'interface de redirection isapi (voir http://tomcat.apache.org/connectors-doc/webserver_howto/iis.html) à un serveur IIS 7. Le connecteur fonctionne correctement dans tous les cas, à l'exception de certaines pages de l'application Web qui renvoient un statut 302, avec un nouvel emplacement vers lequel rediriger.Le code d'état de redirection 302 entre Tomcat et IIS 7.0 n'est pas géré correctement par le redirecteur isapi

Le navigateur récupère le 302 et demande le nouvel emplacement, mais le serveur Web IIS ne transmet pas la requête au serveur Tomcat et renvoie une erreur 404 à la place, même si la mappe de travail d'uri me semble correcte.

La règle des travailleurs uri correspondant est:

/WebClientServlet/*=worker1

et l'URL de l'emplacement du nouvel emplacement se présente comme suit:

http://localhost/WebClientServlet/SBS/cmd:editContent2/workflow:false/articleSearch:false/confirmed:false/objectID:131294/---/fpse/db:test/objectID:131294/Copy+of+0001-Intranet+Home-main-ip+%28DE%29

Répondre

0

je pouvais résoudre le problème. Le code d'état HTTP était en fait un 404.11, ce qui signifie (sous IIS 7) que les séquences à double échappement ne sont pas autorisées. Il existe une nouvelle fonctionnalité introduite dans IIS 7, appelée filtrage d'URL à double échappement. C'est un filtre de sécurité par défaut, qui refuse de charger toute URL contenant des séquences à double échappement. Afin de résoudre le problème, désactivez la fonctionnalité pour le site Web qui est utilisé pour accéder à l'application tomcat via isapi-redirector. Voir plus sous http://www.iis.net/ConfigReference/system.webServer/security/requestFiltering.

0

Fossé le redirecteur ISAPI. Jusqu'à aujourd'hui, c'est ce que j'ai utilisé. Découvrez le Application Request Routing pour IIS7. Here est une promenade à travers sur la façon de le configurer. Si vous souhaitez utiliser les en-têtes d'hôte, recherchez here.