将Web.Config发布到Azure会删除Azure存储连接字符串

时间:2013-07-31 08:27:19

标签: azure visual-studio-2012 web-config connection-string azure-storage

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

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

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

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

如何让VS将我的网络配置发布到Azure并保持不变!!!

的Web.Config

      <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)"/>

2 个答案:

答案 0 :(得分:1)

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

检查并删除&#34; Azure门户中的所有连接字符串和链接资源&#34;解决你的问题。只需确保在Web.Release.config中正确定义了生产数据库和存储连接字符串。

答案 1 :(得分: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上的发布过程。不要添加文件,只需编辑。