質問

ローカルDBを使用して情報を保存するMVC 4イントラネットアプリケーションを構築しました。サーバーに展開したいので、エントリはデータベースに保存されていません。私は運がなくて考えることができるすべてを試しました。

IISのローカルインスタンスの代わりにSQLデータベースを使用するようにアプリケーションに指示する方法はありますか?

これは、私のweb.configの接続文字列です

- 編集:以下にフォーマットされたコードが質問に表示されます。 -

<add name="MyCalendarConnectionString" connectionString="Data Source=DST09119\SQLEXPRESS;Initial Catalog=MyCalendar;Integrated Security=True"
      providerName="System.Data.SqlClient" />
    <add name="SampleConnectionString" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Sample.mdf;Integrated Security=True"
      providerName="System.Data.SqlClient" />
役に立ちましたか?

解決

これを行うための2つの方法:

  1. 派生した後に接続文字列に名前を付けます DbContext クラス(つまり、あなたの場合 DbContextXyzEntities, 、次に、conn文字列に名前を付けます XyzEntities <add name="XyzEntities" connectionString"..... />

  2. 接続文字列の名前をベースコンストラクターに渡します DbContext. 。以下のようなコンストラクターを使用します。

    public class XyzEntities : DbContext
    {
        public XyzEntities( string nameOrConnectionString ) 
            : base( nameOrConnectionString )
        {
        }
    }
    
    // usage
    var dbContext = new DerivedDbContext( "MyCalendarConnectionString" );
    

アップデート:

SQL Server Expressインスタンスに接続できない場合は、使用しているためです Integrated Security=True - データベースにアクセスできるユーザーにアプリプールのIDを設定しない限り、接続は拒否されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top