0

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=&quot;data source=[data source].rds.amazonaws.com;initial catalog=Db;integrated security=False;user id=Dbuser;password=[password];MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    <add name="UserDbEntities" connectionString="metadata=[metadata];provider=System.Data.SqlClient;provider connection string=&quot;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&quot;" 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> 

答えて

0

ここでの回答は、.slnファイルのみの展開が不十分であることが判明しました。私はデプロイパッケージを作成してアップロードしようとしましたが、うまくいきませんでした。私は、Visual Studio用のAWS Toolkitを持っていて、VSのプロジェクトファイルを右クリックすると「Deploy to AWS」オプションに気づきました。それをクリックして手順に従うと、すべて正常に機能しました。

0

は、ユーザーアカウントとcredetialsは、サーバレベルではなく、データベースレベルで設定されています。 SQLデータベースを展開すると、データベース情報だけが移動します。デプロイされた環境でDBサーバーに接続し、使用するユーザー名とパスワードを設定し、アカウントに適切な権限をデータベースに与える必要があります。

+0

応答のおかげで、ジョエル!接続文字列のユーザーIDは、Server \ Security \ Logins in SQLのユーザーを指します。それはサーバーレベルで接続されていますか?また、サーバレベルのユーザはlocalhostに影響を与えないので、テストは成功していますか? – jle

+0

これはサーバーレベルで定義されています。これを開発システムで設定した場合は、本番環境で手動で設定する必要があります。それは単にあなたのデータベースで移動するだけではありません。アカウントを作成するだけでは不十分です。データベースに対するアカウント権限を付与する必要があります。 –

+0

もう一度Joelに感謝しますが、わかりません。それ自体は動かされませんでした。読み書き可能なデータベースとAWSの環境は同じですが、CNAMEに関連付ける前に、アプリの.slnファイルをアップロードしてデプロイするようにアップロードしました。 AWSとデータベースのすべてのサーバセキュリティユーザは変更されておらず、アプリケーションで引き続き使用する必要があります。 – jle

関連する問題