Pergunta

Eu criei um aplicativo Intranet MVC 4 que usa um banco de dados local para armazenar informações. Agora que quero implantá -lo em entradas de um servidor, não está salvando no banco de dados. Eu tentei tudo o que consigo pensar sem sorte.

Existe uma maneira de dizer ao aplicativo para usar um banco de dados SQL em vez de uma instância local no IIS?

Esta é a string de conexão no meu web.config

- Editar: código formatado abaixo para que aparecesse na pergunta. -

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

Solução

Duas maneiras de fazer isso:

  1. Nomeie sua string de conexão após o seu derivado DbContext classe (ou seja; se o seu DbContext é XyzEntities, então nomeie sua string de Conn XyzEntities <add name="XyzEntities" connectionString"..... />

  2. Passe o nome da sequência de conexão no construtor de base para DbContext. Você quer usar um construtor como abaixo:

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

Atualizar:

Se você simplesmente não consegue se conectar à instância do SQL Server Express, é devido ao uso Integrated Security=True - A menos que você defina a identidade do pool de aplicativos para um usuário que tenha acesso ao banco de dados, a conexão será negada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top