Настройка веб-приложения Azure по умолчанию с аутентификацией AD через Visual Studio возвращает ошибку - PullRequest
0 голосов
/ 26 июня 2018

Я хотел создать простое приложение, которое использует Azure AD для аутентификации.

Я решил сделать это через Visual Studio, поэтому я:

  1. Создан новый проект MVC с включенной аутентификацией Work or School Account. Это создает пример приложения и устанавливает регистрацию приложения в моем клиенте.
  2. Опубликовать приложение в Azure. Это создает веб-приложение и размещает его на лазурном языке с доменом .azurewebsites.net.
  3. Настройте URL ответа для регистрации приложения в AD tenant, чтобы соответствовать моему приложению.

Для ясности вот мой web.config (сгенерированный):

<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-xxx-20180626122432.mdf;Initial Catalog=aspnet-xxx-20180626122432;Integrated Security=True" providerName="System.Data.SqlClient" />
  </connectionStrings>
  <appSettings>
    <add key="webpages:Version" value="3.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    <add key="ida:ClientId" value="e9xx-xxx-xxxf-9xxd-xxx" />
    <add key="ida:AADInstance" value="https://login.microsoftonline.com/" />
    <add key="ida:ClientSecret" value="xxxA=" />
    <add key="ida:Domain" value="xxx.onmicrosoft.com" />
    <add key="ida:TenantId" value="xxx-fxxa-xxe7-9xxx-xxx" />
    <add key="ida:PostLogoutRedirectUri" value="https://xxx.azurewebsites.net" />
  </appSettings>

Почему даже генерируется строка подключения? Я не хочу базу данных, это также, что, кажется, вызывает ошибку, которую я получаю.

Это должно быть так, насколько я знаю. Но когда я захожу на свой сайт, я получаю следующую ошибку:

[Win32Exception (0x80004005): система не может найти файл указано]

[SqlException (0x80131904): связанный с сетью или конкретный экземпляр произошла ошибка при установлении соединения с SQL Server. Сервер не был найден или не был доступен. Убедитесь, что экземпляр имя правильное и что SQL Server настроен для удаленного соединения. (поставщик: сетевые интерфейсы SQL, ошибка: 52 - невозможно найдите установку Local Database Runtime. Убедитесь, что SQL Server Экспресс правильно установлен и что локальная база данных времени выполнения функция включена.)]
System.Data.SqlClient.SqlInternalConnectionTds..ctor (DbConnectionPoolIdentity идентичность, SqlConnectionString connectionOptions, SqlCredential учетные данные, Object providerInfo, String newPassword, SecureString newSecurePassword, логическое перенаправленноеUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling) + 821
System.Data.SqlClient.SqlConnectionFactory.CreateConnection (DbConnectionOptions параметры, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection, владеющийConnection, DbConnectionOptions userOptions) + 332
System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection (DbConnectionPool пул, параметры DbConnection owningObject, DbConnectionOptions, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) + 38
System.Data.ProviderBase.DbConnectionPool.CreateObject (DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) + 699
System.Data.ProviderBase.DbConnectionPool.UserCreateRequest (DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) + 89
System.Data.ProviderBase.DbConnectionPool.TryGetConnection (DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal & connection) + 426
System.Data.ProviderBase.DbConnectionPool.TryGetConnection (DbConnection owningObject, TaskCompletionSource 1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +78<br> System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource 1 повтор, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal & соединение) + 191
System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal (DbConnection externalConnection, DbConnectionFactory connectionFactory, TaskCompletionSource 1 retry, DbConnectionOptions userOptions) +154<br> System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource 1 повтор, DbConnectionOptions userOptions) + 21
System.Data.SqlClient.SqlConnection.TryOpenInner (TaskCompletionSource 1 retry) +90<br> System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource 1 повторить попытку) +209 System.Data.SqlClient.SqlConnection.Open () + 96
System.Data.Entity.Infrastructure.Interception.DbConnectionDispatcher.b__36 (DbConnection t, DbConnectionInterceptionContext c) + 10
System.Data.Entity.Infrastructure.Interception.InternalDispatcher 1.Dispatch(TTarget target, Action 2 операция, TInterceptionContext interceptionContext, Действие 3 executing, Action 3 выполнено) + 72
System.Data.Entity.Infrastructure.Interception.DbConnectionDispatcher.Open (DbConnection соединение, DbInterceptionContext interceptionContext) + 360
System.Data.Entity.SqlServer. <> C__DisplayClass33.b__32 () +426 System.Data.Entity.SqlServer. <> C__DisplayClass1.b__0 () + 10
System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute (Func 1 operation) +189<br> System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute(Action operation) +78<br> System.Data.Entity.SqlServer.SqlProviderServices.UsingConnection(DbConnection sqlConnection, Action 1 act) + 175
System.Data.Entity.SqlServer.SqlProviderServices.UsingMasterConnection (DbConnection sqlConnection, Акция 1 act) +552<br> System.Data.Entity.SqlServer.SqlProviderServices.CreateDatabaseFromScript(Nullable 1 commandTimeout, DbConnection sqlConnection, String createDatabaseScript) + 90
System.Data.Entity.SqlServer.SqlProviderServices.DbCreateDatabase (DbConnection соединение, Nullable 1 commandTimeout, StoreItemCollection storeItemCollection) +171<br> System.Data.Entity.Core.Common.DbProviderServices.CreateDatabase(DbConnection connection, Nullable 1 commandTimeout, StoreItemCollection storeItemCollection) + 76
System.Data.Entity.Core.Objects.ObjectContext.CreateDatabase () + 134
System.Data.Entity.Migrations.Utilities.DatabaseCreator.Create (DbConnection соединение) + 119
System.Data.Entity.Migrations.DbMigrator.EnsureDatabaseExists (Action mustSucceedToKeepDatabase) + 142
System.Data.Entity.Migrations.DbMigrator.Update (String targetMigration) + 78
System.Data.Entity.Internal.DatabaseCreator.CreateDatabase (InternalContext internalContext, Func 3 createMigrator, ObjectContext objectContext) +89 System.Data.Entity.Internal.InternalContext.CreateDatabase(ObjectContext objectContext, DatabaseExistenceState existenceState) +116<br> System.Data.Entity.Database.Create(DatabaseExistenceState existenceState) +218<br> System.Data.Entity.CreateDatabaseIfNotExists 1.InitializeDatabase (TContext контекст) + 151
System.Data.Entity.Internal. <> C__DisplayClassf 1.<CreateInitializationAction>b__e() +76 System.Data.Entity.Internal.InternalContext.PerformInitializationAction(Action action) +60<br> System.Data.Entity.Internal.InternalContext.PerformDatabaseInitialization() +357 System.Data.Entity.Internal.LazyInternalContext.<InitializeDatabase>b__4(InternalContext c) +7<br> System.Data.Entity.Internal.RetryAction 1.PerformAction (вход TInput) +110 System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction (Action 1 action) +198<br> System.Data.Entity.Internal.LazyInternalContext.InitializeDatabase() +73 System.Data.Entity.Internal.InternalContext.Initialize() +30 System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) +16<br> System.Data.Entity.Internal.Linq.InternalSet 1.Initialize () + 53
System.Data.Entity.Internal.Linq.InternalSet 1.get_InternalContext() +15 System.Data.Entity.Infrastructure.DbQuery 1.System.Linq.IQueryable.get_Provider () +38 System.Linq.Queryable.FirstOrDefault (предикат IQueryable 1 source, Expression 1) + 83
AdAuthPocDamco.Models.ADALTokenCache..ctor (String signatureInUserId) в C: \ Users \ manielse \ Source \ РЕПО \ AdAuthPocDamco \ AdAuthPocDamco \ Models \ AdalTokenCache.cs: 26 AdAuthPocDamco.Startup.b__7_0 (AuthorizationCodeReceivedNotification контекст) в C: \ Users \ manielse \ Source \ РЕПО \ AdAuthPocDamco \ AdAuthPocDamco \ App_Start \ Startup.Auth.cs: 54 Microsoft.Owin.Security.OpenIdConnect.d__1a.MoveNext () +4952 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () + 26
Microsoft.Owin.Security.OpenIdConnect.d__1a.MoveNext () +6433 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача задание) + 99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task задание) + 61
Microsoft.Owin.Security.Infrastructure.d__0.MoveNext () +571 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача задание) + 99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task задание) + 61
Microsoft.Owin.Security.Infrastructure.d__0.MoveNext () + 255
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Task задание) + 99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task задание) + 61
Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.d__5.MoveNext () +182 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача задание) + 99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task задание) + 61
Microsoft.Owin.Security.Infrastructure.d__0.MoveNext () + 638
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Task задание) + 99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task задание) + 61
Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.d__5.MoveNext () +182 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача задание) + 99
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task задание) + 61
Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.d__2.MoveNext () +180 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.StageAsyncResult.End (IAsyncResult ар) + 69
Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext.EndFinalWork (IAsyncResult ар) + 64
System.Web.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () +380 System.Web.HttpApplication.ExecuteStepImpl (шаг IExecutionStep) +48 System.Web.HttpApplication.ExecuteStep (IExecutionStep шаг, логическое и завершено синхронно) + 159

1 Ответ

0 голосов
/ 04 июля 2018

Почему он вообще генерирует строку подключения?

Я не могу воспроизвести проблему, о которой вы упоминали. В моем файле web.config строка подключения к базе данных не создана. И это работает правильно на моей стороне.

Мне не нужна база данных, это также вызывает ошибку, которую я получаю.

Да, вы правы. Поскольку веб-приложение Azure не может подключиться к локальной базе данных по умолчанию.

Если вам не нужна база данных, вы можете удалить соединение SQL во время публикации в Azure WebApp. Или вы можете создать другой веб-проект и попробовать его снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...