0

私はこれらのファイルを持っています:

Web.config

 <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>

これを web.debug.config と web.release.config に入れることでconnectionStrings、web.config の (空の) 要素全体を置き換えるように構成します。

于 2014-07-16T19:02:06.740 に答える