【发布时间】:2015-12-01 08:25:41
【问题描述】:
我目前在部署到 Azure 时遇到错误。 我直接从我的 web 配置文件中获取了连接字符串,该文件在本地测试时有效,我对其进行了修改以适应我对 Azure 的部署,但随后出现错误。
以下是在我的本地机器上工作的原始连接字符串:
<add name="DataEntities" connectionString="metadata=res://*/Models.FirearmModels.csdl|res://*/Models.FirearmModels.ssdl|res://*/Models.FirearmModels.msl;provider=System.Data.SqlClient;provider connection string="data source=(LocalDB)\v11.0;attachdbfilename=|DataDirectory|\Data.mdf;integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
以下是修改后的 Azure 连接字符串:
<add name="DataEntities" connectionString="metadata=res://*/Models.FirearmModels.csdl|res://*/Models.FirearmModels.ssdl|res://*/Models.FirearmModels.msl;provider=System.Data.SqlClient;provider connection string="data source=tcp:owm5115h08.database.windows.net,1433;Initial Catalog=diafirearmserver;User ID=userid;Password=userpass;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
谁能告诉我我做错了什么,我错过了什么,让这个工作?
提前致谢。
PS:这是我在 Azure 中运行时遇到的错误的屏幕截图: http://i693.photobucket.com/albums/vv293/saturobi360/EntityConnString_Error_zpsyrt1f9jg.jpg
对于图片质量,我深表歉意。 我的道歉:
<Error>
<Message>An error has occurred.</Message>
<ExceptionMessage>
An error occurred while executing the command definition. See the inner exception for details.
</ExceptionMessage>
<ExceptionType>
System.Data.Entity.Core.EntityCommandExecutionException
</ExceptionType>
<StackTrace>
at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.<ExecuteStoreCommandsAsync>d__c.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlan.<ExecuteAsync>d__0`1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Data.Entity.Utilities.TaskExtensions.CultureAwaiter`1.GetResult() at System.Data.Entity.Core.Objects.ObjectContext.<ExecuteInTransactionAsync>d__3d`1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.<ExecuteAsyncImplementation>d__9`1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Data.Entity.Utilities.TaskExtensions.CultureAwaiter`1.GetResult() at System.Data.Entity.Core.Objects.ObjectQuery`1.<GetResultsAsync>d__e.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Data.Entity.Utilities.TaskExtensions.CultureAwaiter`1.GetResult() at System.Data.Entity.Internal.LazyAsyncEnumerator`1.<FirstMoveNextAsync>d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Data.Entity.Infrastructure.IDbAsyncEnumerableExtensions.<FirstOrDefaultAsync>d__25`1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at DIA_FirearmsAPIversion2.Controllers.FirearmsController.<GetFirearm>d__2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Threading.Tasks.TaskHelpersExtensions.<CastToObject>d__3`1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Controllers.AuthenticationFilterResult.<ExecuteAsync>d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__1.MoveNext()
</StackTrace>
<InnerException>
<Message>An error has occurred.</Message>
<ExceptionMessage>Invalid object name 'dbo.Firearms'.</ExceptionMessage>
<ExceptionType>System.Data.SqlClient.SqlException</ExceptionType>
<StackTrace>
at System.Data.SqlClient.SqlCommand.<>c__DisplayClass16.<ExecuteDbDataReaderAsync>b__17(Task`1 result) at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke() at System.Threading.Tasks.Task.Execute() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.<ExecuteStoreCommandsAsync>d__c.MoveNext()
</StackTrace>
</InnerException>
我的本地连接字符串:
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-DIA_FirearmsAPIversion2-20151118042347.mdf;Initial Catalog=aspnet-DIA_FirearmsAPIversion2-20151118042347;Integrated Security=True" providerName="System.Data.SqlClient" />
<add name="DataEntities" connectionString="metadata=res://*/Models.FirearmModels.csdl|res://*/Models.FirearmModels.ssdl|res://*/Models.FirearmModels.msl;provider=System.Data.SqlClient;provider connection string="data source=(LocalDB)\v11.0;attachdbfilename=|DataDirectory|\Data.mdf;integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
<add name="DIA_FirearmsAPIversion2Context" connectionString="Data Source=(localdb)\v11.0; Initial Catalog=DIA_FirearmsAPIversion2Context-20151118164215; Integrated Security=True; MultipleActiveResultSets=True; AttachDbFilename=|DataDirectory|DIA_FirearmsAPIversion2Context-20151118164215.mdf" providerName="System.Data.SqlClient" />
我到 Azure 的连接字符串:
<add name="DefaultConnection" connectionString="Data Source=tcp:owm5115h08.database.windows.net,1433;Initial Catalog=diafirearmserver;User Id=username;Password=userpassword" providerName="System.Data.SqlClient" />
<add name="DataEntities" connectionString="metadata=res://*/Models.FirearmModels.csdl|res://*/Models.FirearmModels.ssdl|res://*/Models.FirearmModels.msl;provider=System.Data.SqlClient;provider connection string="data source=tcp:owm5115h08.database.windows.net,1433;Initial Catalog=diafirearmserver;User ID=username;Password=userpassword;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
<add name="DIA_FirearmsAPIversion2Context" connectionString="Data Source=tcp:owm5115h08.database.windows.net,1433;Initial Catalog=diafirearmserver;User Id=username;Password=userpassword" providerName="System.Data.SqlClient" />
【问题讨论】:
-
在我的手机上,这个图像很糟糕。将例外剪切并粘贴到您的问题中,让所有相关人员的生活更轻松。
-
@BrendanGreen,我对截图的图像质量表示歉意。我用错误更新了原始帖子。
-
在发布到 azure 时,您可以选择运行挂起的迁移,您是否选中了此复选框?还可以尝试连接到您的 sql 数据库并查看实际存在的内容(表)...
-
@Milen Pavlov,当我尝试连接到 Azure 中的数据库以查看实际存在的内容时,我收到以下错误:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:TCP 提供者,错误:0 - 不知道这样的主机。)不知道这样的主机
-
@MilenPavlov 我已经更新了原始帖子,以显示我原来的本地连接字符串,它工作正常,以及我修改后的 Azure 连接字符串。
标签: entity-framework azure connection-string