我遇到了识别 SQL 的 Web 部署包的问题。我正在使用 Visual Studio 2015、SQL Server 2014、SSDT 数据库项目。工作流程是,创建一个 MVC 项目,创建一个数据库项目,并使用 Web 部署包在 DB 项目上运行 SQL 查询。我计划将 MVC 项目发布到 Web 部署包中,并将查询作为包的一部分添加到部署中。(我目前没有尝试 DACPAC,因为我遇到了在使用 Web 部署工具时它们不包括部署前和部署后脚本的问题)。
使用下面的连接字符串发布 Web 部署包时会出现问题。
<connectionStrings configSource="connectionsettings.config">
web.config 中的那个会阻止 web deploy 检测数据库以添加到 web 包中以进行 web 部署打包。
每当我更改为普通的连接字符串时,即使是这样简单的事情:
<connectionStrings>
<add name="Default" connectionString="" providerName="System.Data.SqlClient" />
然后 web 部署包工作,你得到正确的 UI。
任何人都知道如何使用 web.config 连接字符串中的配置源显示数据库?作为替代方案,我正在考虑获取 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 进行一体化部署?