首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >IIS applicationHost.config变化不反映

IIS applicationHost.config变化不反映
EN

Stack Overflow用户
提问于 2015-04-21 12:09:48
回答 1查看 2.4K关注 0票数 1

我创建了一个测试网站来利用应用程序初始化模块提供的热身模块。

我使用过ScottGu的博客韦德·希尔莫的博客

我安装了该模块并实现了对applicationHost.config文件的更改,并重新启动了服务器:

代码语言:javascript
代码运行次数:0
运行
复制
<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>

一旦服务器重新启动,我将检查任务管理器,并且我的站点没有运行。因此,删除了这些更改,并使用AppCmd从命令提示符中执行此操作:

代码语言:javascript
代码运行次数:0
运行
复制
%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"

波布斯你叔叔,它工作得很好。然后,我重新启动了服务器,并再次检查了applicationHost.config文件,而我所做的更改并不存在;然而,该站点在Task中运行良好,如果我访问该站点,它将立即可用。停止并启动应用程序池会立即在任务管理器中弹出站点。

所以我的问题是,如果没有保存在applicationHost.config文件中的设置在哪里?!

编辑:我做了很多调查和游戏,但没有更多的答案。首先,经过一些搜索,我发现有另一个applicationHost.config文件。我一直在编辑的那个

代码语言:javascript
代码运行次数:0
运行
复制
%windir%\System32\inetsrv\config\applicationHost.config

第二个显然与32位有关,但第一个applicationHost.config清楚地显示了32位网站。即使如此,第二个也没有反映我的变化

%windir%\SysWOW64\inetsrv\config\applicationHost.config

我搜索了applicationHost.config,它找到了一些其他的副本,但看起来更像是它们的初始/备份副本。

然后我创建了第二个网站,这两个站点现在被配置成这样:

代码语言:javascript
代码运行次数:0
运行
复制
<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命令:

代码语言:javascript
代码运行次数:0
运行
复制
%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中配置方式相反的方法。我完全重新启动了服务器,并检查了配置,它仍然是我最初离开的状态,没有反映变化,而且两个站点都没有启动。

然后,我将Site2的配置更改为自动启动(如Site1),并重新启动服务器,但它仍然没有启动。然后我跑了:

代码语言:javascript
代码运行次数:0
运行
复制
%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"

它启动了,重新启动了服务器,并且启动了,尽管site 1还没有在启动时启动。所以我跑了:

代码语言:javascript
代码运行次数:0
运行
复制
%windir%\System32\inetsrv\appcmd set apppool "MySite" /startMode:AlwaysRunning
%windir%\System32\inetsrv\appcmd set app "MySite/" /preloadEnabled:true

并重新启动整个服务器,只是为了更好的措施,这两个网站都在启动。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-29 20:33:03

您是否使用notepad++进行这些更改并查看文件?如果是这样,请使用Windows附带的标准记事本(如果您已经用notepad2替换了记事本,则使用notepad2)。我猜notepad++默认只写32位(根据http://forums.iis.net/t/1151982.aspx?Opening+applicationHost+config+in+anything+other+than+Notepad)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29771833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档