Domanda

Ho creato un'applicazione Intranet MVC 4 che utilizza un DB locale per archiviare le informazioni. Ora che voglio distribuirlo su un server Le voci non salvano nel database. Ho provato tutto quello a cui riesco a pensare senza fortuna.

C'è un modo per dire all'applicazione di utilizzare un database SQL anziché un'istanza locale in IIS?

Questa è la stringa di connessione nel mio web.config

- Modifica: codice formattato di seguito in modo che venga visualizzato nella domanda. -

<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" />
È stato utile?

Soluzione

Due modi per procedere:

  1. Nomina la stringa di connessione dopo la tua deriva DbContext classe (cioè; se il tuo DbContext è XyzEntities, Quindi nomina la tua stringa Conn XyzEntities <add name="XyzEntities" connectionString"..... />

  2. Passare il nome della stringa di connessione nel costruttore di base per DbContext. Vuoi usare un costruttore come sotto:

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

Aggiornare:

Se non puoi connetterti all'istanza SQL Server Express, è dovuto all'utilizzo Integrated Security=True - A meno che non si imposta l'identità del pool di app su un utente che ha accesso al database, la connessione verrà negata.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top