Можно использовать Apache для указания на несколько различных серверов переменных типов.
# Drop me in a file called my_proxies.conf in conf.d # Apache picks up everything in conf.d/*.conf NameVirtualHost *:80 <VirtualHost *:80> # This Apache serves up images and cgi-bin ProxyPass /images ! ProxyPass /cgi-bin ! # # Got stuff on this server (Jetty, Glassfish, Tomcat, or Apache ) # ProxyPass /foo http://localhost:8080/foo ProxyPassReverse /foo http://localhost:8080/foo Redirect /foo http://localhost:8080/foo ErrorLog /tmp/foo_error_log CustomLog /tmp/foo_access_log # # Root comes last # Let's put our main app on its own special server # ProxyPass / http://localhost:9090/ ProxyPassReverse / http://localhost:9090/ ErrorLog /tmp/bar_error_log CustomLog /tmp/bar_access_log # </VirtualHost>
Мы смогли копировать проблему (как немного фона, приложением является REST как API), мы нашли, что, если бы первый запрос к странице был ПОМЕЩЕННЫМ вызовом, страница возвратила бы 401 ошибку и продолжила бы возвращать ту ошибку. Однако, если бы первый вызов к странице был ПОЛУЧИТЬ вызовом, то страница загрузилась бы, прекрасные и последующие вызовы (или ПОЛУЧАЮТ или ПОМЕЩАЮТ), были бы успешны приблизительно в течение часа, где проблема возникнет снова.
Это, которому мы верим, было вызвано конфигурацией приложения, имеющей приоритет по конфигурации IIS7. Где IIS7 был настроен для анонимной аутентификации, приложение не было. После того как мы настроили приложение для принятия анонимной аутентификации, проблема исчезла.
Я предложил бы включить журналирование состояния, подсостояния и win32status в Ваших журналах IIS и отправил бы строку, которая показывает 401 ошибку от журнала здесь.