2015-04-21 4 views
1

Я создал тестовый сайт, чтобы использовать модуль разминки, предоставляемый Application Initialization Module.IIS applicationHost.config изменения не отражаются

Я использовал ScottGu's Blog, а также Wade Hilmo's Blog.

Я установил модуль и реализованы изменения в файл applicationHost.config и перезапустить сервер:

<applicationPools> 
    <add name="MySite" autoStart="true" startMode="AlwaysRunning" managedRuntimeVersion="v4.0" /> 
</applicationPools> 

<sites> 
    <site name="MySite" id="4" serverAutoStart="true"> 
     <application path="/" applicationPool="MySite" preloadEnabled="true"> 
      <virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot\MySite" /> 
     </application> 
    </site> 
</sites> 

После перезагрузки сервера, я проверяю Task Manager и мой сайт не работает. Таким образом, затем удаляются изменения и использовать Appcmd, чтобы сделать это из командной строки:

%windir%\System32\inetsrv\appcmd set apppool "MySite" /autoStart:true 
%windir%\System32\inetsrv\appcmd set apppool "MySite" /startMode:AlwaysRunning 
%windir%\System32\inetsrv\appcmd set app "MySite/" /preloadEnabled:true 
%windir%\System32\inetsrv\appcmd stop apppool "MySite" 
%windir%\System32\inetsrv\appcmd start apppool "MySite" 

И Bobs ваш дядя работает отлично. Затем я перезапустил сервер для хорошей меры и снова проверил файл applicationHost.config, и изменения, которые я сделал, отсутствуют; но сайт отлично работает в диспетчере задач, и если я получаю доступ к сайту, он будет доступен немедленно. Остановка и запуск пула приложений видит, что сайт сразу появляется в диспетчере задач.

Так что мой вопрос в том, где хранятся настройки, если нет в файле applicationHost.config ?!

Редактировать: Я много разучился и играл, но не ближе к ответу. Во-первых, после некоторых поисков я обнаружил, что есть еще один файл applicationHost.config. Один я редактировал сидит в

%windir%\System32\inetsrv\config\applicationHost.config 

второй, по-видимому что-то делать с 32-х, но первым applicationHost.config ясно показывает 32bit веб-сайтов. Тем не менее, второй один не отражает мои изменения либо

% Windir% \ SysWOW64 \ Inetsrv \ Config \ applicationHost.config

Я сделал поиск по applicationHost.config он нашел несколько других его копий но похоже, что это исходные/резервные копии.

Затем я создал второй сайт, два сайта будут настроены так:

<applicationPools> 
    <add name="MySite" autoStart="true" startMode="AlwaysRunning" managedRuntimeVersion="v4.0" /> 
    <add name="MySite2" autoStart="true" startMode="OnDemand" managedRuntimeVersion="v4.0" /> 
</applicationPools> 

<sites> 
    <site name="MySite" id="1" serverAutoStart="true"> 
     <application path="/" applicationPool="MySite" preloadEnabled="true"> 
      <virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot\MySite" /> 
     </application> 
    </site> 
    <site name="MySite2" id="2" serverAutoStart="true"> 
     <application path="/" applicationPool="MySite" preloadEnabled="false"> 
      <virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot\MySite" /> 
     </application> 
    </site> 
</sites> 

Первый сайт должен автозапуск и второй сайт должен быть по требованию.

я побежал следующие Appcmd команды:

%windir%\System32\inetsrv\appcmd set apppool "MySite" /startMode:OnDemand 
%windir%\System32\inetsrv\appcmd set app "MySite/" /preloadEnabled:false 

%windir%\System32\inetsrv\appcmd set apppool "MySite2" /startMode:AlwaysRunning 
%windir%\System32\inetsrv\appcmd set app "MySite2/" /preloadEnabled:true 

настроить их обратный путь вокруг к тому, как они настроены в applicationHost.config. Я полностью перезапустил сервер и проверил конфигурацию, но все равно, поскольку я изначально оставил его и не отражал изменения, и ни один сайт не запускается.

Затем я изменил конфигурацию сайта 2 на автозапуск (как и на сайт 1) и перезапустил сервер, но он все еще не запускался. Затем я побежал:

%windir%\System32\inetsrv\appcmd set apppool "MySite2" /startMode:AlwaysRunning 
%windir%\System32\inetsrv\appcmd set app "MySite2/" /preloadEnabled:true 
%windir%\System32\inetsrv\appcmd stop apppool "MySite2" 
%windir%\System32\inetsrv\appcmd start apppool "MySite2" 

и он начал, перезапустить сервер и запущен, хотя сайт 1 по-прежнему не запускается при запуске. Поэтому я побежал:

%windir%\System32\inetsrv\appcmd set apppool "MySite" /startMode:AlwaysRunning 
%windir%\System32\inetsrv\appcmd set app "MySite/" /preloadEnabled:true 

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

ответ

2

Вы используете блокнот ++ для внесения этих изменений и просмотра файла? Если это так, используйте стандартный блокнот, который поставляется с Windows (или notepad2, если вы заменили блокнот на блокнот2). Я думаю, что блокнот ++ записывает только 32-битный по умолчанию (согласно http://forums.iis.net/t/1151982.aspx?Opening+applicationHost+config+in+anything+other+than+Notepad).

+0

Это, безусловно, вызывает вопросы, однако я сделал быструю проверку и блокнот ++ показывает правильный путь в верхней части страницы, но, безусловно, заслуживает внимания в вашем сообщении. У меня нет доступа к серверу, о котором идет речь в данный момент, но мне скоро будет предоставлен новый сервер для развертывания и он будет изучать его. Вернется, как только мы проверили – Storm

+0

Я только что протестировал это как на новом сервере, так и на старом сервере. На новом сервере Notepad ++ работает нормально и открывает правильный файл, и все сразу отражается после внесения изменений. На старом сервере я открыл файл как в Notepad ++, так и в Notepad и ничего себе, они были разные. Оба сервера имеют x64, поэтому все, о чем я могу думать, это тот, что Notepad ++ работает 32bit или что-то в этом роде. Спасибо David :) – Storm

+0

Без проблем, рад, что это было полезно (и спасибо за то, что вы вернулись с заключением)! – David

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