2015-08-13 3 views
0

У меня есть приложение для веб-сайта (VB), которое вызывает службу ASMX через элемент управления AJAX (с использованием AjaxControlToolkit) для предварительного заполнения поиска по имени. Однако этот вызов всегда возвращает внутреннюю ошибку сервера 500.19 с ошибкой «Существует проблема с ресурсом, который вы ищете, и он не может быть отображен». Все остальные функции приложения работают. Веб-сайт предварительно скомпилирован и развернут в двухузловом кластере Windows 2012 R2/IIS 8.5. Я попытался добавить различные элементы в свой web.config для других потоков, я удалил приложение и заново создал его, я проверил подключение к базе данных, я проверил, что обработчики ASMX существуют в конфигурации IIS. Еще большее недоумение заключается в том, что это приложение работает в моей локальной среде Windows 8.1/IIS 8.5 и на тестовом сервере IIS 7.ASMX вызов через AJAX возвращает внутреннюю ошибку сервера

Приложение работает под пулом приложений, настроенным для .NET 4.0, и использует режим конвейера «Integrated». Для тестирования я попытался использовать пул 2.0, но тогда приложение не работает вообще.

Формат запроса URL я получаю сообщение об ошибке на это: http://www.example.com/myapplication/EmployeeSearch.asmx/SearchByName

Любые идеи, что еще смотреть? Будет ли что-то в среде кластера, вызывающей эту проблему?

(я знаю, что 87000 человек задавал подобный вопрос, но я до сих пор найти тот, который решает мою проблему.)

Update После отступив немного, я вернулся к этому. Наконец, я смог получить более подробную информацию об ошибках (500.19), хотя она все еще недостаточно разъяснима. Вызов ASMX является единственной частью приложения, которое производит эту ошибку. Я также сделал быструю версию, которая просто использует jQuery для вызова службы, и она дала тот же результат. В соответствии с ниже, путь к файлу конфигурации для меня пугает ... почему это будет путь, который он использует?

Module: 
    IIS Web Core 
Notification: 
    BeginRequest 
Handler: 
    Not yet determined 
Error Code: 
    0x8007010b 
Config Error: 
    Cannot read configuration file 
Config File: 
    \\?\UNC\0.0.0.0\webcontent\www.example.com-iis\my-application\EmployeeSearch.asmx\SearchByName\web.config 
Requested URL: 
    http://www.example.com:80/my-application/EmployeeSearch.asmx/SearchByName 
Physical Path 
    \\0.0.0.0\webcontent\www.example.com-iis\my-application\EmployeeSearch.asmx\SearchByName 
Logon Method 
    Not yet determined 
Logon User 
    Not yet determined 
Request Tracing Directory 
    C:\inetpub\logs\FailedReqLogFiles 
+0

У вас есть шанс исправить это? Вы случайно используете NFS в качестве общего хранилища для своего кластера IIS? [здесь] (http://blogs.msdn.com/b/webtopics/archive/2010/03/08/troubleshooting-http-500-19-errors-in-iis-7.aspx) вы можете найти возможное преступник: Из статьи: «... Мы видели эту ошибку (500.19 0x8007010b), когда содержимое сайта указывает на некоторую файловую систему NTFS. В таких случаях рекомендуется протестировать ее, разместив контент на Windows/NTFS share ... " – NublaII

+0

Спасибо за комментарий. Я еще не разрешил это. Я видел что-то в своих поисках о том, как смотреть на общий накопитель, но не был уверен, что с ним делать или где можно устранить проблему, поскольку файловые системы далеки от моей области знаний. Но да, мы используем общее хранилище CIFS для кластера.Пока я собираюсь отправить это другому человеку, который будет знать больше об этой части установки. –

+0

У нас та же проблема. Я также ищу решение. Если я найду что-нибудь, я отправлю его здесь. – NublaII

ответ

1

решение, в данном случае (после разговора с Microsoft Support) было установлено allowSubDirConfig для применения в False.

Теперь, чтобы создать резервную копию и объяснить, почему. Это из-за того, как IIS-зонды - если установлено на True или вообще не установлено - для web.config. Это достаточно разумно, чтобы проверить, не является ли данный путь/URL (в данном случае вызовом ASMX) каталогом, прежде чем пытаться получить web.config, но в зависимости от хранилища для приложения он может оказаться не в состоянии определить, каталог, и в этом случае он по умолчанию ищет web.config, как если бы этот путь был каталогом. В моем случае мы используем удаленный общий ресурс NTFS для хранения. Вероятно, устройство или устройство или драйвер устройства не поддерживают работу/диспетчер ресурсов, используемый IIS для проверки наличия каталога. Настройка allowSubDirConfig на False означает, что IIS не будет пытаться исследовать файл web.config при вызове метода ASMX, который предотвращает ошибку «Can not read configuration file», которую я получаю.

+0

, хотя мы используем NFS (в отличие от NTFS на вашем случае), ваше решение устранило нашу проблему. Я уже отметил вас как правильный ответ. – NublaII

+0

Это решение также работало для меня, но обязательно отредактируйте файл applicationHost.config с помощью 64-битного текстового редактора, или вы столкнетесь с ситуацией, когда ваши изменения в applicationHost.config не вступают в силу даже после iisreset https : //stackoverflow.com/questions/36641621/applicationhost-config-not-showing-changes –

Смежные вопросы