Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Connection String

Bom dia,

Não estou conseguindo acompanhar o curso por conta que o identityDbContext não cria o banco... Não estou usando o LocalDb, estou usando o SQLServer EXPRESS, minha string de conexão funciona para outras aplicação.

ConnectionStrings "Copiada do SQL Server Object"

Data Source=DESKTOP-IDT0T9V\SQLEXPRESS;Integrated Security=False;User ID=sa;Password=********;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False

Quando visualizo a avaliação da aplicação, alguns erros aparenta ter acontecido, mas a aplicação não parou...

CurrentTransaction

        CurrentTransaction    A avaliação de função exige que todos os threads sejam executados.    System.Data.Entity.DbContextTransaction

Em Database->Connection

ServerVersion    '((System.Data.SqlClient.SqlConnection)dbContext.Database.Connection).ServerVersion' gerou uma exceção do tipo 'System.InvalidOperationException'    string {System.InvalidOperationException}

Fico no aguardo, obrigado :D

5 respostas

Somente reforçando, estou usando o SQL Server Express 2014.

Paulo,

Essa string aqui é padrão:

"Data Source=.;Initial Catalog=dbBancoTeste;Persist Security Info=True;User ID=sa;Password=teste123"

O ponto no data source se refere a instância local instalada no computador, não mude. No lugar de "dbBancoTeste" use o seu banco de dados, se não existir, crie um antes.

Se mesmo assim não funcionar, o problema não é a string de conexão.

Se ajudei na solução marque a resposta, por favor! Abs.

Ola Murilo, muito obrigado por sua resposta.

Fiz o teste com a string que você me passou, alterei o que tinha que alterar "usuário, senha e o banco", porem o mesmo problema esta acontecendo. Só da pra ver o problema se eu colocar um break point e avaliar o IdentityDbContext->database->Connection->ServerVersion esta com error, o que descrevi na duvida.

Assim ficou a string

connectionStrings add name="conexao" providerName="System.Data.SqlClient" connectionString="Data Source=.;Initial Catalog=byteBank;Persist Security Info=True;User ID=sa;Password=Senha"/ /connectionStrings

solução!

Vou colar aqui o que funcionou pra mim:

  <connectionStrings>
    <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=ByteBank;Integrated Security=True;" />
  </connectionStrings>

Agora minha classe Startup do Identity:

using ByteBank.App_Start.Identity;
using ByteBank.Models;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
using Microsoft.AspNet.Identity.Owin;
using Microsoft.Owin;
using Owin;
using System.Data.Entity;

[assembly: OwinStartup(typeof(ByteBank.Startup))]

namespace ByteBank
{
    public class Startup
    {
        public void Configuration(IAppBuilder builder)
        {
            builder.CreatePerOwinContext<DbContext>(() => new IdentityDbContext<UsuarioAplicacao>("DefaultConnection"));

            builder.CreatePerOwinContext<IUserStore<UsuarioAplicacao>>(
                (opcoes, contextoOwin) =>
                {
                    var dbContext = contextoOwin.Get<DbContext>();
                    return new UserStore<UsuarioAplicacao>(dbContext);
                });

            builder.CreatePerOwinContext<UserManager<UsuarioAplicacao>>(
                (opcoes, contextoOwin) =>
                {
                    var userStore = contextoOwin.Get<IUserStore<UsuarioAplicacao>>();
                    var userManager = new UserManager<UsuarioAplicacao>(userStore);

                    var userValidator = new UserValidator<UsuarioAplicacao>(userManager);
                    userValidator.RequireUniqueEmail = true;

                    userManager.UserValidator = userValidator;
                    userManager.PasswordValidator = new SenhaValidador()
                    {
                        TamanhoRequerido = 6,
                        ObrigatorioCaracteresEspeciais = true,
                        ObrigatorioDigitos = true,
                        ObrigatorioLowerCase = true,
                        ObrigatorioUpperCase = true
                    };

                    userManager.EmailService = new EmailServico();

                    var dataProtectionProvider = opcoes.DataProtectionProvider;
                    var dataProtectionProviderCreated = dataProtectionProvider.Create("ByteBank");
                    userManager.UserTokenProvider = new DataProtectorTokenProvider<UsuarioAplicacao>(dataProtectionProviderCreated);

                    return userManager;
                });
        }
    }
}

A minha está rodando com o SQL Server 2017 Developer Edition

Veja se te ajuda isso aí. Abs

Obrigado Murilo.