使用connectionstring configsource

时间:2016-06-13 01:33:12

标签: asp.net sql-server msdeploy webdeploy microsoft-web-deploy

我遇到了识别SQL的Web Deploy包的问题。我正在使用Visual Studio 2015,SQL Server 2014,SSDT数据库项目。工作流是,创建MVC项目,创建数据库项目,并使用Web Deploy Package在DB项目上运行SQL查询。我计划将MVC项目发布到Web部署包中,并将查询作为包的一部分添加到部署中。 (我现在没有尝试DACPAC,因为我遇到了使用Web Deploy Tool时不包括部署前后脚本的问题。)

使用下面的连接字符串发布Web部署包时会出现问题。

  <connectionStrings configSource="connectionsettings.config">

web.config中的内容阻止Web部署检测到要添加到Web包以进行Web部署打包的数据库。

deloy package missing database

每当我更改为正常的连接字符串时,即使是这样简单的事情:

  <connectionStrings>
<add name="Default" connectionString="" providerName="System.Data.SqlClient" />

然后Web部署包工作,您就可以获得正确的UI。

deloy package working

任何人都知道如何使用web.config connectionstrings中的configsource显示数据库?作为替代方案,我正在考虑使用parameters.xml来替换空白连接字符串以包含上面的configSource,但是没有运气。

想法是删除默认连接并将其替换为配置源。删除默认连接有效,但configSource没有。

  <parameter name="RemoveConnectionString" defaultValue="">
    <parameterValidation kind="AllowEmpty" />
    <parameterEntry kind="XmlFile"
      scope="Web\.config$"
      match="//configuration/connectionStrings/add[@name='Default']" />
  </parameter>

  <parameter name="AddConfigSource" defaultValue="connectionsettings.config">
    <parameterEntry kind="XmlFile"
      scope="\\web.config$"
      match="/configuration/connectionStrings/@configSource" />
  </parameter>

Web部署包似乎尚未开发用于SQL,但是我的问题是一个修复程序,还是一个更好的方法来为IIS进行一体化部署。 SQL?

1 个答案:

答案 0 :(得分:0)

使用WebDeploy参数化手动为单独的配置文件创建参数。

在以下链接中略到“步骤3 - 创建参数文件”:

http://www.iis.net/learn/publish/using-web-deploy/web-deploy-parameterization

这也可能有所帮助:

http://www.dotnetcatch.com/2014/09/08/parameterizationpreview-visual-studio-extension/