加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

iis-7.5 – 如何让Deploy.cmd填充Parameters.xml中的替换字段

发布时间:2020-12-16 22:45:17 所属栏目:百科 来源:网络整理
导读:我有一个使用msdeploy部署的Web应用程序. 我在项目中定义了以下parameters.xml文件: parameters parameter name="Database Server" description="Location of your database server." defaultValue="localhost" tags="DBServer,SQL" /parameter parameter n
我有一个使用msdeploy部署的Web应用程序.

我在项目中定义了以下parameters.xml文件:

<parameters>

    <parameter
        name="Database Server"
        description="Location of your database server."
        defaultValue="localhost"
        tags="DBServer,SQL">
    </parameter>

    <parameter
        name="Database Name"
        description="Name of the database for your application."
        defaultValue="MyDatabase" tags="DBName,SQL">
    </parameter>

    <parameter
        name="Database Username"
        description="User name to access your application database."
        defaultValue="myusername"
        tags="SQL,DbUsername">
    </parameter>

    <parameter
       name="Database Password"
       description="Password for the Database Username."
       defaultValue="mypassword"
       tags="SQL,DbUserPassword">
    </parameter>

    <parameter
        name="RTPOne-Web.config Connection String"
        description="Connection string to enter into config"
        defaultValue="Data Source={Database Server};Initial Catalog={Database Name};User Id={Database Username};Password={Database Password};Connection TimeOut=30;Pooling=false;Max Pool Size=500;"
        tags="Hidden,SQL">
        <parameterEntry kind="XmlFile" scope="web.config$" match="//*[local-name()='connectionStrings']/*[local-name()='add'][@name='RTPOne']/@connectionString" tags="Sql,SqlConnectionString,Hidden" />
        <parameterEntry kind="XmlFile" scope="web.config$" match="//*[local-name()='appSettings']/*[local-name()='add'][@key='DBConnStr']/@value" tags="" />
    </parameter>
</parameters>

最后一个参数使用以下替换字段:

{Database Server}
{Database Name}
{Database Username}
{Database Password}

当我在IIS 7.5中使用“导入应用程序”选项时,使用其他参数提供的值正确填充这些替换字段.

但是,当我使用Application.Deploy.cmd文件通过命令行部署应用程序时,这些值都没有被正确替换,我最终得到一个如下所示的连接字符串:

Data Source={Database Server};Initial Catalog={Database Name};User Id={Database Username};Password={Database Password};Connection TimeOut=30;Pooling=false;Max Pool Size=500;

使用部署包生成的Application.SetParameters.xml文件包含正确的默认值.我期望Deploy.cmd批处理文件应该能够使用它的默认值:

<?xml version="1.0" encoding="utf-8"?>
<parameters>
  <setParameter name="IIS Web Application Name" value="Default Web Site/MyApplication" />
  <setParameter name="Database Server" value="localhost" />
  <setParameter name="Database Name" value="MyDatabase" />
  <setParameter name="Database Username" value="MyUsername" />
  <setParameter name="Database Password" value="MyPassword" />
  <setParameter name="Web.config Connection String" value="Data Source={Database Server};Initial Catalog={Database Name};User Id={Database Username};Password={Database Password};Connection TimeOut=30;Pooling=false;Max Pool Size=500;" />
</parameters>

有什么办法可以让Deploy.cmd批处理文件正确替换这些值吗?

解决方法

你可能没有意识到的一个特点……

如果Application.SetParameters.xml文件包含连接字符串的setParameter元素,则WebDeploy将按原样使用该值.即根本不会尝试进行任何替换.

如果从SetParameters.xml文件中删除了该setParameter引用,WebDeploy将识别出应该使用定义的默认值,并根据其他参数的值按预期计算它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读