Зміна фізичного шляху на IIS через appcmd не активована


9

Ми зіткнулися з проблемою на IIS 7.5, де у нас є проста система розгортання, яка складається з наступного:

Створіть zip-файл нової веб-корені, що складається з трьох папок:

Api
Site
Manager

Це розпаковане в нову папку (скажімо, ми називаємо її "SITE_REV1") і містить сценарій, який викликає наступне (по одному для кожної веб-корені):

C:\Windows\system32\inetsrv\appcmd set vdir "www.site.com/" -physicalPath:"SITE_REV1\Site"

Зазвичай це спрацьовує в 9/10 разів. У деяких випадках веб-кореня здається оновленою правильно (якщо я перевіряю основні параметри в IIS Manager, шлях виглядає правильним), але відповідний запущений сайт фактично вказує на старе місце розташування. Єдиний спосіб, який нам вдалося "виправити", це запустити скидання IIS. Недостатньо, щоб переробити відповідний пул додатків.

Іноді здається, що навіть потрібно перезавантажити, але я не впевнена на 100%, що це правильно (це не завжди я вирішував проблему).

Я переписав сценарій за допомогою Powershell та модуля веб-адміністрування, сподіваючись, що в appcmd стався збій, але виникає та сама проблема.

Set-ItemProperty "IIS:\Sites\www.site.com" -Name physicalPath -Value "SITE_REV1\Site"

Хтось переживав щось подібне? Хтось має поняття про те, що відбувається, і що я можу спробувати зробити для запобігання цього питання? Проведення скидання IIS насправді не є хорошим варіантом для нас, оскільки це вплине на всі сайти на сервері кожного разу, коли ми намагаємось розгорнути зміни на одному сайті.

EDIT: Ми виявили, що запуск / зупинка сайту (НЕ пулу додатків) у IIS Manager вирішує помилковий фізичний шлях, але якщо я зупиняю сайт за допомогою appcmd, змінюю фізичний шлях, а потім запускаю його, я все одно страждаю від ті ж питання. Я на пусті ...


1
Для тих часів, коли це не працює, чи можливо, що запити були наявними, що їх обслуговує старий пул додатків через перекриття, що перекриваються ? Не впевнені в вимогах щодо часу роботи на своєму веб-сайті, але ви можете спробувати відключити обертання, що перекриваються, і включити команду пулу додатків у сценарій розгортання.
explunit

Ні, всі наступні запити подаються зі старої веб-корені, навіть програма для повторної переробки перезавантажить програму зі старого кореня. Скидання IIS - це єдиний спосіб, коли нам вдалося відновити його.
Наче

Я не можу знайти згадку про це у applicationHost.config, тому я припускаю, що це за замовчуванням "false"?
джиші

Гаразд, думав, що якщо disallowOverlappingRotation = true, то старий пул додатків може не вимикатися через довго працюючу нитку чи щось. Саме тому IIS Reset потрібно буде повністю очистити. Цікаве запитання - буде цікаво побачити, які відповіді з’являються.
explunit

Майте на увазі, що програма рециркуляції пулу додатків - це не те саме, що зупинка / старт. Ви пробували цей метод? Майте на увазі, це знищить усі поточні підключення та зробить сайт недоступним (помилка 500) до запуску пулу додатків.
Джон Гомер

Відповіді:


0

Чи правильно та негайно працює зміна фізичного шляху від IIS Manager?

Ви можете спробувати наступну команду. По-іншому синтаксис повинен мати однаковий результат, але, можливо, він працює дещо іншим чином, змушуючи IIS підбирати зміни (краще):

C:\Windows\System32\inetsrv\appcmd.exe set app "www.site.com/" -[path='/'].physicalPath:"SITE_REV1\Site"


AFAIK у нас ніколи не було проблем, коли ми змінювали його вручну в IIS-менеджері, лише програмно.
jishi

0

Реалізація пулу додатків повинна бути достатньою для кожного сайту. Це незалежні процеси. Занадто часто статті та процеси рекламують використання iisreset. Чи є зупинка / запуск пулу додатків для одного сайту можливим? Це єдине серверне рішення, і ви намагаєтесь мінімізувати час простою для сайту? Існує можливість вимкнути переробку при зміні конфігурації. Потім можна вручну переробити. Коли проблема виникає, що вказано у applicationHost.config?


Я не впевнений на 100%, але оскільки менеджер IIS перераховує новий шлях, я припускаю, що applicationHost.config оновлений. Однак, коли процес переробляється, він, здається, не використовує щойно налаштовані значення. Оскільки це відбувається лише зрідка, важко вчасно усунути проблеми.
джиші
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.