首页 > 解决方案 > 告诉 appcmd 将配置写入 applicationhost.config 而不是站点的 web.config

问题描述

据我了解,可以在以下文件中将连接字符串和其他配置对象添加到站点范围 -

  1. 机器配置
  2. 应用程序主机配置
  3. 该网站的 web.config

我正在运行以下命令 -
APPCMD set config "site1" /section:ConnectionStrings /+"[ConnectionString='Data Source=localhost;Integrated Security=SSPI;', Name='Northwind', providerName='System.Data.SqlClient']"

这会在 web.config 文件中添加一个元素。
我想在 applicationHost.config 文件中看到它。

我尝试在 <site> 元素下手动添加它 -

        <site name=...
             <connectionStrings>
                 <add connectionString="Data Source=localhost;Integrated Security=SSPI;" name="fromApplicatinoHost" providerName="System.Data.SqlClient " />
             </connectionStrings>
        </site>

但这不是 applicationHost 的合法语法。
那么如何将 connectionString 添加到 applicationHost ?

谢谢,

标签: windowsiisconnection-stringappcmdapplicationhost

解决方案


您可以使用 /commit 参数来做到这一点。例如
appcmd set config "ping" /section:system.webServer/security/authorization /+"[accessType='Allow',roles='administrators']" /commit:apphost
,将授权写入应用程序主机。

更改站点上下文时的默认设置是写入站点的 web.config。向 machine.config添加/commit:machine写入。

完整的答案将包含完整的配置文件集,映射到文件的 appcmd 名称,但这也回答了我的问题。


推荐阅读