Frage

Ich habe eine MVC 4 -Intranet -Anwendung erstellt, die ein lokales DB zum Speichern von Informationen verwendet. Jetzt, da ich es auf Servereinträgen bereitstellen möchte, speichern ich nicht in der Datenbank. Ich habe alles ausprobiert, was ich ohne Glück denken kann.

Gibt es eine Möglichkeit, der Anwendung mitzuteilen, dass sie eine SQL -Datenbank anstelle einer lokalen Instanz in IIS verwenden soll?

Dies ist die Verbindungszeichenfolge in meinem Web.config

- Bearbeiten: Formatierter Code unten, damit er in der Frage angezeigt wird. -

<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" />
War es hilfreich?

Lösung

Zwei Möglichkeiten, dies zu tun:

  1. Nennen Sie Ihre Verbindungszeichenfolge nach Ihrem abgeleiteten DbContext Klasse (dh; wenn deine DbContext ist XyzEntities, Nennen Sie dann Ihre Conn -Zeichenfolge XyzEntities <add name="XyzEntities" connectionString"..... />

  2. Geben Sie den Namen der Verbindungszeichenfolge in den Basiskonstruktor für DbContext. Sie möchten einen Konstruktor wie unten verwenden:

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

Aktualisieren:

Wenn Sie einfach keine Verbindung zur SQL Server Express -Instanz herstellen können, liegt dies auf die Verwendung Integrated Security=True - Wenn Sie die Identität des App -Pools auf einen Benutzer festlegen, der Zugriff auf die Datenbank hat, wird die Verbindung verweigert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top