繁体   English   中英

System.ComponentModel.Win32Exception:等待操作从Azure VPN超时

[英]System.ComponentModel.Win32Exception: The wait operation timed out from Azure VPN

在此处输入图片说明 我们有一个Azure应用服务,该服务尝试使用VPN classic(使用VNET配置)连接到内部SQL Server。

有时我们会出现以下错误:

System.Data.SqlClient.SqlException(0x80131904):建立与SQL Server的连接时发生与网络相关或特定于实例的错误。 服务器未找到或无法访问。 验证实例名称正确,并且已将SQL Server配置为允许远程连接。 (提供者:TCP提供程序,错误:0-等待操作超时。)---> System.ComponentModel.Win32Exception(0x80004005):等待操作超时

在System.Data.SqlClient.SqlInternalConnectionTds..ctor处(DbConnectionPoolIdentity身份,SqlConnectionString connectionOptions,SqlCredential凭据,对象providerInfo,字符串newPassword,SecureString newSecurePassword,布尔型redirectedUserInstance,SqlConnectionString userConnectionOptions,SessionData reconnectSessionData,DbConnectionFaultHandle,ApplyInfo,String accessToken

在System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions选项,DbConnectionPoolKey poolKey,对象poolGroupProviderInfo,DbConnectionPool池,DbConnection owningConnection,DbConnectionOptions userOptions)

在System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool池,DbConnection owningObject,DbConnectionOptions选项,DbConnectionPoolKey poolKey,DbConnectionOptions userOptions)

在System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject,DbConnectionOptions userOptions,DbConnectionInternal oldConnection)

在System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject,DbConnectionOptions userOptions,DbConnectionInternal oldConnection)

在System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject,UInt32 waitForMultipleObjectsTimeout,布尔值allowCreate,仅布尔值OneCheckConnection,DbConnectionOptions userOptions,DbConnectionInternal&连接)

在System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject,TaskCompletionSource`1重试,DbConnectionOptions userOptions,DbConnectionInternal&连接)

在System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection,TaskCompletionSource`1重试,DbConnectionOptions userOptions,DbConnectionInternal oldConnection,DbConnectionInternal&连接)

在System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal处(DbConnection externalConnection,DbConnectionFactory connectionFactory,TaskCompletionSource`1重试,DbConnectionOptions userOptions)

在System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection externalConnection,DbConnectionFactory connectionFactory,TaskCompletionSource`1重试,DbConnectionOptions userOptions)

在System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1重试)

在System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1重试)

在System.Data.SqlClient.SqlConnection.Open()

在Dapper.SqlMapper.d__11`1.MoveNext()

在System.Collections.Generic.List 1..ctor(IEnumerable 1 collection)

在System.Linq.Enumerable.ToList [TSource](IEnumerable`1源)处

在Dapper.SqlMapper.Query [T](IDbConnection cnn,字符串sql,对象参数,IDbTransaction事务,布尔型缓冲,可空1 commandTimeout, Nullable 1 commandType)

在SiSystems.ClientApp.Web.Domain.Repositories.UserRepository.FindByPrimaryEmail(字符串用户名)

在SiSystems.ClientApp.Web.Domain.Repositories.UserRepository.FindByName(字符串用户名)

在SiSystems.ClientApp.Web.Auth.UserStore。<> c__DisplayClass3_0.b__0()

在System.Threading.Tasks.Task`1.InnerInvoke()

在System.Threading.Tasks.Task.Execute()

---从之前引发异常的位置开始的堆栈结束跟踪---

在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)

在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)

在Microsoft.AspNet.Identity.TaskExtensions.CultureAwaiter`1.GetResult()

在Microsoft.AspNet.Identity.UserManager`2.d__12.MoveNext()

---从之前引发异常的位置开始的堆栈结束跟踪---

在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)

在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)

在SiSystems.ClientApp.Web.Auth.ApplicationOAuthProvider.d__2.MoveNext()

---从之前引发异常的位置开始的堆栈结束跟踪---

在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)

在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)

在Microsoft.Owin.Security.OAuth.OAuthAuthorizationServerHandler.d__3f.MoveNext()

---从之前引发异常的位置开始的堆栈结束跟踪---

在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)

在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)

在System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(任务任务)

在Microsoft.Owin.Security.OAuth.OAuthAuthorizationServerHandler.d__22.MoveNext()

---从之前引发异常的位置开始的堆栈结束跟踪---

在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)

在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)

在System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(任务任务)

在Microsoft.Owin.Security.OAuth.OAuthAuthorizationServerHandler.d__0.MoveNext()

---从之前引发异常的位置开始的堆栈结束跟踪---

在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)

在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)

在Microsoft.Owin.Security.Infrastructure.AuthenticationMiddleware`1.d__0.MoveNext()

---从之前引发异常的位置开始的堆栈结束跟踪---

在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)

在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)

在Microsoft.Owin.Security.Infrastructure.AuthenticationMiddleware`1.d__0.MoveNext()

---从之前引发异常的位置开始的堆栈结束跟踪---

在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)

在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)

在Microsoft.Owin.Security.Infrastructure.AuthenticationMiddleware`1.d__0.MoveNext()

---从之前引发异常的位置开始的堆栈结束跟踪---

在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)

在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)

在Microsoft.AspNet.Identity.Owin.IdentityFactoryMiddleware`2.d__0.MoveNext()

---从之前引发异常的位置开始的堆栈结束跟踪---

在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)

在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)

在Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContextStage.d__5.MoveNext()

---从之前引发异常的位置开始的堆栈结束跟踪---

在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)

在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)

在Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext.d__2.MoveNext()

---从之前引发异常的位置开始的堆栈结束跟踪---

在Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.StageAsyncResult.End(IAsyncResult ar)

在Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext.EndFinalWork(IAsyncResult ar)

在System.Web.HttpApplication.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()

在System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep步骤)

在System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值和完成同步)

ClientConnectionId:00000000-0000-0000-0000-000000000000

错误号:258,状态:0,类:20

添加了我从天蓝色得到的日志的图像

1-这可能是由于在应用程序内的连接字符串中的db-server-name上未指定tcp协议引起的。

第二种可能性:

2-转到“服务器名”的“ SQL Server配置管理”->“ SQL Server网络配置”->“协议”,并检查已启用命名管道。

3-防火墙规则:

TCP端口1433的端口例外。在“新建入站规则向导”对话框中,使用以下信息创建端口例外:选择端口选择TCP并指定端口1433允许连接选择所有三个配置文件(域,专用和公用)。规则“ SQL – TCP 1433” UDP端口1434的端口例外。再次单击“新建规则”,并使用以下信息创建另一个端口例外:选择端口选择UDP并指定端口1434允许连接选择所有三个配置文件(域,专用和公用)将规则命名为“ SQL – UDP 1434 sqlservr.exe的程序异常。 再次单击“新建规则”,然后使用以下信息创建程序例外:选择“程序”,然后单击“浏览”以在以下位置选择“ sqlservr.exe”:[C:\\ Program Files \\ Microsoft SQL Server \\ MSSQL11。\\ MSSQL \\ Binn \\ sqlservr。 exe]其中是您的SQL实例的名称。 允许连接选择所有三个配置文件(域,专用和公用)将规则命名为SQL – sqlservr.exe sqlbrowser.exe的程序异常再次单击“新建规则”,然后使用以下信息创建另一个程序异常:选择程序单击“浏览”以选择sqlbrowser.exe在以下位置:[C:\\ Program Files \\ Microsoft SQL Server \\ 90 \\ Shared \\ sqlbrowser.exe]。 允许连接选择所有三个配置文件(域,专用和公用)将规则命名为SQL-sqlbrowser.exe

请参阅: SQL连接错误:System.Data.SqlClient.SqlException(0x80131904)以及: https : //thycotic.force.com/support/s/article/System-Data-SqlClient-SqlException-0x80131904

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM