0

我有这些文件:

网页配置

 <connectionStrings>
 </connectionStrings>

Web.Debug.config

  <connectionStrings>
    <add name="Elite.DAL.MainContext"
     connectionString="Data Source=FISH\SQLEXPRESS;Initial Catalog=Elite;Integrated Security=True"
     providerName="System.Data.SqlClient" />
  </connectionStrings>

Web.Releas.config

  <connectionStrings>
    <add name="Elite.DAL.MainContext"
         connectionString="Data Source=1LEINTRA\SFSQL;Initial Catalog=Elite;Integrated Security=True"
         providerName="System.Data.SqlClient" />
  </connectionStrings>

难道我做错了什么?

当我使用 Web-Deploy 发布时,我得到了这个:

  <connectionStrings>
    <add name="Elite.DAL.MainContext" connectionString="Elite.DAL.MainContext_ConnectionString" providerName="System.Data.SqlClient" />
    <add name="Elite.DAL.MainContext_DatabasePublish" connectionString="Elite.DAL.MainContext_DatabasePublish.ConnetionString" providerName="System.Data.SqlClient" />
  </connectionStrings>

Format of the initialization string does not conform to specification starting at index 0.

此外,当我发布时,我选择运行第一个代码迁移,但未创建表,这是初始迁移的一部分。

<contexts>
  <context type="Elite.DAL.MainContext, Elite">
    <databaseInitializer type="System.Data.Entity.MigrateDatabaseToLatestVersion`2[[Elite.DAL.MainContext, Elite], [Elite.Migrations.Configuration, Elite]], EntityFramework, PublicKeyToken=b77a5c561934e089">
      <parameters>
        <parameter value="Elite.DAL.MainContext_DatabasePublish" />
      </parameters>
    </databaseInitializer>
  </context>
</contexts>
4

1 回答 1

0

您应该将调试连接字符串放在您的常规 web.config 中。然后您可以使用 XML-Document-Transform 选项来配置您的发布版本。

然后,您可以告诉转换过程您要更改常规 web.config 中的连接字符串,如下所示:

  <add name="lite.DAL.MainContext" 
      connectionString="Data Source=1LEINTRA\SFSQL;Initial Catalog=Elite;Integrated Security=True" 
      xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>

您可以在此处找到 Web.config 转换语法的文档。

如果您确实想保留一个空的 web.config,您可以使用以下语法:

<connectionStrings xdt:Transform="Replace" >
    <add name="Elite.DAL.MainContext"
     connectionString="Data Source=FISH\SQLEXPRESS;Initial Catalog=Elite;Integrated Security=True"
     providerName="System.Data.SqlClient"/>
  </connectionStrings>

connectionStrings通过将它放在您的 web.debug.config 和 web.release.config 中,您可以配置应该替换 web.config中的整个(空)元素。

于 2014-07-16T19:02:06.740 回答