Pregunta

He creado una aplicación MVC 4 Intranet que utiliza un DB local para almacenar información. Ahora que quiero implementarlo en las entradas de un servidor, no se están guardando en la base de datos. He intentado todo lo que puedo pensar sin suerte.

¿Hay alguna forma de decirle a la aplicación que use una base de datos SQL en lugar de una instancia local en IIS?

Esta es la cadena de conexión en mi web.config

- Editar: código formateado a continuación para que apareciera en la pregunta. -

<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" />
¿Fue útil?

Solución

Dos formas de hacerlo:

  1. Nombra tu cadena de conexión después de tu derivado DbContext clase (es decir, si tu DbContext es XyzEntities, luego nombra tu cadena Conn XyzEntities <add name="XyzEntities" connectionString"..... />

  2. Pasar el nombre de la cadena de conexión al constructor base para DbContext. Desea usar un constructor como a continuación:

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

Actualizar:

Si simplemente no puede conectarse a la instancia de SQL Server Express, se debe a usar Integrated Security=True - A menos que establezca la identidad del grupo de aplicaciones en un usuario que tenga acceso a la base de datos, se le negará la conexión.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top