2016-04-16 39 views
0

在將我的項目發佈到Azure App Service之前,我在Visual Studio中執行了代碼優先的遷移,但沒有任何種子數據。創建6個表:從Azure數據庫提取IdentityUser數據時出錯

  1. dbo._MigrationHistory
  2. dbo.AspNetRoles
  3. dbo.AspNetUserClaims
  4. dbo.AspNetUserLogins
  5. dbo.AspNetUserRoles
  6. dbo.AspNetUsers

當我試圖找到,如果然而在特定的ÑIdentityUser是通過發送到我的控制器的請求註冊,我會遇到以下錯誤:

2016-04-16T09:58:30 PID[6608] Error 
    at System.Data.SqlClient.SqlConnection.PermissionDemand() 
    at System.Data.SqlClient.SqlConnectionFactory.PermissionDemand(DbConnection outerConnection) 
    at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) 
    at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) 
    at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) 
    at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) 
    at System.Data.SqlClient.SqlConnection.Open() 
    at Microsoft.AspNet.Identity.EntityFramework.IdentityDbContext`1.IsIdentityV1Schema(DbContext db) 
    at Microsoft.AspNet.Identity.EntityFramework.IdentityDbContext`1..ctor(String nameOrConnectionString, Boolean throwIfV1Schema) 
    at Microsoft.AspNet.Identity.EntityFramework.IdentityDbContext`1..ctor(String nameOrConnectionString) 
    at authentication.Contexts.AuthContext..ctor() in d:\Projects\learnAuth\authentication\Contexts\AuthContext.cs:line 7 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 
    at System.Data.Entity.Infrastructure.DbContextInfo.CreateInstance() 
    at System.Data.Entity.Infrastructure.DbContextInfo..ctor(Type contextType, DbProviderInfo modelProviderInfo, AppConfig config, DbConnectionInfo connectionInfo, Func`1 resolver) 
    at System.Data.Entity.Migrations.DbMigrator..ctor(DbMigrationsConfiguration configuration, DbContext usersContext, DatabaseExistenceState existenceState) 
    at System.Data.Entity.Migrations.DbMigrator..ctor(DbMigrationsConfiguration configuration) 
    at System.Data.Entity.MigrateDatabaseToLatestVersion`2.InitializeDatabase(TContext context) 
    at System.Data.Entity.Internal.InternalContext.<>c__DisplayClassf`1.<CreateInitializationAction>b__e() 
    at System.Data.Entity.Internal.InternalContext.PerformInitializationAction(Action action) 
    at System.Data.Entity.Internal.InternalContext.PerformDatabaseInitialization() 
    at System.Data.Entity.Internal.LazyInternalContext.<InitializeDatabase>b__4(InternalContext c) 
    at System.Data.Entity.Internal.RetryAction`1.PerformAction(TInput input) 
    at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction(Action`1 action) 
    at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabase() 
    at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) 
    at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize() 
    at System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext() 
    at System.Data.Entity.Infrastructure.DbQuery`1.System.Linq.IQueryable.get_Provider() 
    at System.Data.Entity.QueryableExtensions.FirstOrDefaultAsync[TSource](IQueryable`1 source, Expression`1 predicate, CancellationToken cancellationToken) 
    at System.Data.Entity.QueryableExtensions.FirstOrDefaultAsync[TSource](IQueryable`1 source, Expression`1 predicate) 
    at Microsoft.AspNet.Identity.EntityFramework.UserStore`6.<FindAsync>d__23.MoveNext() 

連接字符串中Web.config

<connectionStrings> 
    <add name="AuthContext" connectionString="Server=tcp:seraphtest.database.windows.net,1433;Database=learnauth;User [email protected];Password=XXXXXXXX;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

AuthContext.cs

public class AuthContext : IdentityDbContext<IdentityUser> 
{ 
    public AuthContext() : base("AuthContext") { } 
} 

錯誤的來源:

private UserManager<IdentityUser> userManager; 

public async Task<IdentityUser> Find(UserLoginInfo loginInfo) 
{ 
    // stack trace starts from here 
    IdentityUser user = await userManager.FindAsync(loginInfo); 
    return user; 
} 

這個錯誤的來源是什麼,我該如何解決?

+0

連接字符串你如何讓你的連接字符串? –

+0

從Azure Portal複製 –

回答

0

原來是工作,如果我改變從

<connectionStrings> 
    <add name="AuthContext" connectionString="Server=tcp:seraphtest.database.windows.net,1433;Database=learnauth;User [email protected];Password=XXXXXXXX;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

<connectionStrings> 
    <add name="AuthContext" connectionString="Server=tcp:seraphtest.database.secure.windows.net,1433;Database=learnauth;User [email protected];Password=XXXXXXXX;Encrypt=True;TrustServerCertificate=True;Connection Timeout=30;" providerName="System.Data.SqlClient" /> 
</connectionStrings>