1

我有一个 web.config,其中包含我的 SQL 连接字符串和 Azure Blob 存储连接字符串。

Web.Config 转换将我的本地 SQL 连接字符串替换为 Azure 连接字符串。

当我将站点发布到 Azure 时,Blob 存储连接字符串被删除并替换为重复的 SQL 连接字符串,但使用的是 Blob 存储字符串的名称。

我发现修复的唯一方法是通过 FTP 登录,然后使用本地计算机上的正确连接字符串手动更改错误的存储连接字符串。

我如何让 VS 将我的 Web 配置发布到 Azure 并不管它!!!

网络配置

      <connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\.mdf;Integrated Security=True" providerName="System.Data.SqlClient" />
    <add name="StorageConnectionString" connectionString="DefaultEndpointsProtocol=https;AccountName=;AccountKey=" />
  </connectionStrings>

Web.Release.Config

  <connectionStrings>
<add name="DefaultConnection"
     connectionString="Server=.database.windows.net,1433;Database=;User ID=@;Password=!;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;"
     providerName="System.Data.SqlClient"
     xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
4

2 回答 2

1

我有一个和你类似的问题。我不确定为什么,但是当您在 azure 门户的“配置选项卡”中定义连接字符串并在链接资源选项卡上关联“链接资源”时,它可能会覆盖 Web.config 转换中的某些属性,从而导致意外结果。设置新的 azure 网站时的选项之一是链接到(或创建新的)数据库以与您的网站关联 - 从而自动分配相关的连接字符串,该字符串可能会尝试覆盖 Web.Release 中定义的转换操作。配置。

检查并查看删除“Azure 门户”内的所有连接字符串和链接资源是否可以解决您的问题。只需确保在 Web.Release.config 中正确定义了生产数据库和存储连接字符串。

于 2014-11-17T00:03:57.900 回答
1

今天早上我为这个问题苦苦挣扎,我想出了一个 VS2015/17 的解决方案。

所以我有一个 Azure VM,为了在这台机器上发布我的 Web 应用程序,我使用了 Web 部署到 VS 提出的 Azure VM。

我将连接字符串放在一个外部文件中,所以我的 web.config 的有用部分如下所示:

  </entityFramework>
  <connectionStrings configSource="ConnectionStrings.config">
  </connectionStrings>
</configuration>

为了防止 VS 在发布过程中添加一些连接字符串(在我的例子中是 ADO.Net 代码第一个 MSSQL 数据库连接字符串),您可以在项目中编辑以下文件:

...\MyProject\Properties\PublishProfiles\YourPublishProfile - WebDeploy.pubxml

在此文件中查看 ItemGroup 部分并对其进行编辑以删除您不需要的连接字符串:

<PublishDatabaseSettings>
  <Objects xmlns="">
    <ObjectGroup Name="MyProject.Models.MSSQL_DB" Order="1" Enabled="False">
      <Destination Path="" />
      <Object Type="DbCodeFirst">
        <Source Path="DBContext" DbContext="MyProject.Models.MSSQL_DB, MyProject" Origin="Convention" />
      </Object>
    </ObjectGroup>
  </Objects>
</PublishDatabaseSettings>
</PropertyGroup>
<ItemGroup>
    <here are some entries delete the ones you don't need/>
</ItemGroup>

请注意,如果您在此目录中添加文件,则有可能会破坏 VS 上的发布过程。不要添加文件,只需编辑。

于 2017-12-07T14:44:17.487 回答