【发布时间】:2017-09-17 21:19:35
【问题描述】:
这是一个涉及 Azure 与 SQL Server 和 Web 应用程序的问题。
在本地一切正常。该问题仅存在于 Azure 中。
我已经设置了一个带有数据库的 SQL Server,并发布了一个 Web 应用程序。他们使用的是同一个区域。
一切都有默认设置,除了允许我的本地 ip 连接到数据库服务器。
我可以从 SQL Server Management Studio 连接到 Azure SQL Server,并在那里看到我的数据库。
我在网络应用程序中做的第一件事是尝试注册一个新用户。涉及的技术是 ASP.NET MVC5、ASP.NET Identity 和带有迁移脚本的实体框架。普通 MS 的东西。
我在“发布/设置/数据库”对话框中设置了ApplicationDbContext(DefaultConnection),并选中了“执行代码优先迁移”。
迁移脚本运行良好。所有表都已创建并显示在 SQL Server Management Studio 中。
但是当网络应用程序尝试将新用户添加到 User 表时,我收到如下所示的错误。
所以.. Web 应用程序显然具有对数据库的连接和访问权限,因为所有表都已创建。知道我缺少什么吗?
感谢您的帮助和意见!
更新:
在 web.config 中我发现了一个新的 ConnectionString:
DefaultConnection_DatabasePublish 配置正确。
原来的DefaultConnection 在发布后不知何故更改为Data Source=localhost;Initial Catalog={catalog};Integrated Security=True。
将 DefaultConnection 更改为与 DefaultConnection_DatabasePublish 相同解决了问题。
我在发布之前没有这种行为。我之前没有检查过“执行代码优先迁移”。有人可以确认该行为是否与此有关?
“/”应用程序中的服务器错误。
系统找不到指定的文件
说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详情:System.ComponentModel.Win32Exception:系统找不到指定的文件
来源错误:
在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。
堆栈跟踪:
[Win32Exception (0x80004005): 系统找不到指定的文件]
[SqlException (0x80131904):建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)]
System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity 标识,SqlConnectionString connectionOptions,SqlCredential 凭据,对象 providerInfo,字符串 newPassword,SecureString newSecurePassword,布尔重定向用户实例,SqlConnectionString userConnectionOptions,SessionData reconnectSessionData,DbConnectionPool 池,字符串 accessToken,布尔 applyTransientFaultHandling) +821
System.Data.SqlClient.SqlConnectionFactory.CreateConnection (DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, 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& 连接) +426
System.Data.ProviderBase.DbConnectionPool.WaitForPendingOpen() +343
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)+99
System.Runtime.CompilerServices.TaskAwaiter。 HandleNonSuccessAndDebuggerNotification(任务任务)+58
System.Data.Entity.SqlServer.d__6.MoveNext() +226
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)+99
System.Runtime.CompilerServices.TaskAwaiter。 HandleNonSuccessAndDebuggerNotification(任务任务)+58
System.Data.Entity.SqlServer.d__9`1.MoveNext() +354
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)+99
System.Runtime.CompilerServices.TaskAwaiter。 HandleNonSuccessAndDebuggerNotification(任务任务)+58
System.Data.Entity.Core.EntityClient.d__8.MoveNext() +594
【问题讨论】:
标签: entity-framework-6 azure-web-app-service asp.net-identity-2 azure-sql-database azure-sql-server