Amazon Webサービスを使用して、最初のC#アプリケーションを展開しています。 localhost上でVisual Studioを使用してテストすると、プログラムは正常に動作しますが、デプロイメントサーバーで実行しようとすると例外System.Data.SqlClient.SqlException: Login failed for user 'dbuser'.
がスローされます。アプリケーション環境(Elastic Beanstalk)は、IIS 8.5を実行する64ビットWindows Server 2012 R2 v1.2.0を実行し、データベースはSQL Server Express 11.00.2100.60.v1を実行し、インスタンスクラスはMicro db.t2.smallを実行します。展開されたファイルは、アプリケーションのメインフォルダにある.sln Microsoft Visual Studioソリューションファイルです。System.Data.SqlClient.SqlException:ユーザー 'user'のログインに失敗しました
この同じトピックのotherSO questionsは、フォーム認証、データベースのユーザー名とパスワードの正しい設定、またはintegrated security=False;
の設定(いずれも完了しているように見える)のいずれかによって解決されるようです。誰もがこれを引き起こす可能性があることを知っていますか?前もって感謝します!
スタックトレース:
[SqlException (0x80131904): Login failed for user 'dbuser'.]
System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) +356
System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +117
System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) +267
System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +318
System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) +132
System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) +246
System.Data.SqlClient.SqlConnection.Open() +122
System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch(TTarget target, Action`2 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed) +104
System.Data.Entity.Infrastructure.Interception.DbConnectionDispatcher.Open(DbConnection connection, DbInterceptionContext interceptionContext) +509
System.Data.Entity.SqlServer.<>c__DisplayClass33.<UsingConnection>b__32() +567
System.Data.Entity.SqlServer.<>c__DisplayClass1.<Execute>b__0() +15
System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute(Func`1 operation) +238
System.Data.Entity.SqlServer.SqlProviderServices.UsingMasterConnection(DbConnection sqlConnection, Action`1 act) +916
System.Data.Entity.SqlServer.SqlProviderServices.CreateDatabaseFromScript(Nullable`1 commandTimeout, DbConnection sqlConnection, String createDatabaseScript) +117
System.Data.Entity.SqlServer.SqlProviderServices.DbCreateDatabase(DbConnection connection, Nullable`1 commandTimeout, StoreItemCollection storeItemCollection) +212
System.Data.Entity.Migrations.Utilities.DatabaseCreator.Create(DbConnection connection) +135
System.Data.Entity.Migrations.DbMigrator.EnsureDatabaseExists(Action mustSucceedToKeepDatabase) +175
System.Data.Entity.Migrations.DbMigrator.Update(String targetMigration) +116
System.Data.Entity.Internal.DatabaseCreator.CreateDatabase(InternalContext internalContext, Func`3 createMigrator, ObjectContext objectContext) +121
System.Data.Entity.Database.Create(DatabaseExistenceState existenceState) +293
System.Web.Providers.ModelHelper.EnsureDatabaseCreated(DbContext db) +110
System.Web.Providers.ModelHelper.CreateMembershipContext(ConnectionStringSettings setting) +83
System.Web.Providers.DefaultMembershipProvider.ValidateUser(String username, String password) +122
Db.Controllers.AccountController.ValidateLogOn(String userName, String password) +395
Db.Controllers.AccountController.LogOn(String userName, String password, Boolean rememberMe, String returnUrl) +33
lambda_method(Closure , ControllerBase , Object[]) +298
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +209
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +35
System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) +39
System.Web.Mvc.Async.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) +71
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +42
System.Web.Mvc.Async.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d() +72
System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +386
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +42
System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +30
System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +186
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +38
System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +29
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +67
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +53
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +36
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +38
System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +44
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +67
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +38
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +399
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +157
のWeb.config接続文字列:SQL Serverでは
<connectionStrings>
<add name="DbEntities" connectionString="metadata=[metadata];provider=System.Data.SqlClient;provider connection string="data source=[data source].rds.amazonaws.com;initial catalog=Db;integrated security=False;user id=Dbuser;password=[password];MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
<add name="UserDbEntities" connectionString="metadata=[metadata];provider=System.Data.SqlClient;provider connection string="data source=[data source].rds.amazonaws.com;initial catalog=UserDb;integrated security=False;user id=Dbuser;password=[password];connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
<add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Server=[server].rds.amazonaws.com;Database=UserDb;User ID=Dbuser;Password=[password];Trusted_Connection=False;Connection Timeout=30;" />
</connectionStrings>
応答のおかげで、ジョエル!接続文字列のユーザーIDは、Server \ Security \ Logins in SQLのユーザーを指します。それはサーバーレベルで接続されていますか?また、サーバレベルのユーザはlocalhostに影響を与えないので、テストは成功していますか? – jle
これはサーバーレベルで定義されています。これを開発システムで設定した場合は、本番環境で手動で設定する必要があります。それは単にあなたのデータベースで移動するだけではありません。アカウントを作成するだけでは不十分です。データベースに対するアカウント権限を付与する必要があります。 –
もう一度Joelに感謝しますが、わかりません。それ自体は動かされませんでした。読み書き可能なデータベースとAWSの環境は同じですが、CNAMEに関連付ける前に、アプリの.slnファイルをアップロードしてデプロイするようにアップロードしました。 AWSとデータベースのすべてのサーバセキュリティユーザは変更されておらず、アプリケーションで引き続き使用する必要があります。 – jle