Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server Azure和SQL Server:命名管道提供程序,错误:40-无法打开到SQL Server的连接_Sql Server_Asp.net Mvc_Asp.net Mvc 4_Azure_Azure Sql Database - Fatal编程技术网

Sql server Azure和SQL Server:命名管道提供程序,错误:40-无法打开到SQL Server的连接

Sql server Azure和SQL Server:命名管道提供程序,错误:40-无法打开到SQL Server的连接,sql-server,asp.net-mvc,asp.net-mvc-4,azure,azure-sql-database,Sql Server,Asp.net Mvc,Asp.net Mvc 4,Azure,Azure Sql Database,将Azure与SQL Server一起使用。在隐式调用SimpleRoleProvider的30%的情况下,我们会收到一个错误:命名管道提供程序,错误:40-无法打开到SQL Server的连接。错误经常发生,但不可再现。好像是超时了 [Authorize(Roles = "Administrator")] public class AdminController : Controller { ... } 堆栈跟踪如下所示: [Win32Exception (0x80004005): A

将Azure与SQL Server一起使用。在隐式调用SimpleRoleProvider的30%的情况下,我们会收到一个错误:命名管道提供程序,错误:40-无法打开到SQL Server的连接。错误经常发生,但不可再现。好像是超时了

[Authorize(Roles = "Administrator")]
public class AdminController : Controller
{
   ...
}
堆栈跟踪如下所示:

[Win32Exception (0x80004005): Access is denied]
[SqlException(0x80131904):建立与SQL Server的连接时发生网络相关或特定于实例的错误。找不到或无法访问该服务器。请验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:命名管道提供程序,错误:40-无法打开到SQL Server的连接)] System.Data.SqlClient.SqlInternalConnection.OnError(SqlException异常,布尔breakConnection,Action
1 wrapCloseInAction)+5296071
System.Data.SqlClient.TdsParser.throweexception和warning(TdsParserStateObject stateObj,布尔调用方连接锁,布尔异步关闭)+558
System.Data.SqlClient.TdsParser.Connect(ServerInfo ServerInfo,sqlinternalconnectionds connHandler,Boolean ignoresnopentimeout,Int64 timerExpire,Boolean encrypt,Boolean trustServerCert,Boolean integratedSecurity,Boolean with failover)+5308555
System.Data.SqlClient.sqlinternalconnectionds.AttemptOneLogin(ServerInfo ServerInfo、String newPassword、SecureString newSecurePassword、Boolean ignoresnopentimeout、TimeoutTimer timeout、Boolean with failover)+145
System.Data.SqlClient.sqlinternalconnectionds.loginnofilover(ServerInfo ServerInfo,String newPassword,SecureString newSecurePassword,Boolean redirectedUserInstance,SqlConnectionString connectionOptions,SqlCredential凭证,TimeoutTimer timeout)+889
System.Data.SqlClient.SqlInternalConnectionDS.OpenLoginList(超时超时、SqlConnectionString连接选项、SqlCredential凭证、String新密码、SecureString newSecurePassword、Boolean redirectedUserInstance)+307
System.Data.SqlClient.SqlInternalConnectionDS..ctor(DbConnectionPoolIdentity、SqlConnectionString connectionOptions、SqlCredential凭证、对象提供者信息、String newPassword、SecureString newSecurePassword、Boolean redirectedUserInstance、SqlConnectionString userConnectionOptions)+434
System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions选项、DbConnectionPoolKey poolKey、Object poolGroupProviderInfo、DbConnectionPool池、DbConnectionOwningConnection、DbConnectionOptions用户选项)+225
System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool池、DbConnectionOptions选项、DbConnectionPoolKey池键、DbConnectionOptions用户选项)+37
System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnectionOptions用户选项)+558
System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnectionOptions userOptions)+67
System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection-owningObject,UInt32-waitForMultipleObjectsTimeout,布尔allowCreate,布尔OnlyOnEckConnection,DbConnectionOptions-userOptions,DbConnectionInternal&connection)+1052
System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject、TaskCompletionSource
1重试、DbConnectionOptions用户选项、DbConnectionInternal和connection)+78 System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection所有者连接、TaskCompletionSource
1重试、DbConnectionOptions用户选项、DbConnectionInternal和connection)+167
System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection,DbConnectionFactory connectionFactory,TaskCompletionSource
1重试,DbConnectionOptions用户选项)+143 System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1重试)+83 System.Data.SqlClient.SqlConnection.Open()+96 System.Web.DataAccess.SqlConnectionHolder.Open(HttpContext上下文,布尔值revertImpersonate)+88 System.Web.DataAccess.SqlConnectionHelper.GetConnection(字符串connectionString,布尔值还原模拟)+239 System.Web.Security.SqlRoleProvider.GetRolesForUser(字符串用户名)+762 WebMatrix.WebData.SimpleRoleProvider.GetRolesForUser(字符串用户名)+54 System.Web.Security.RolePrincipal.IsInRole(字符串角色)+9461104

我们自己的服务器上没有此问题。这是配置问题吗?我们正在使用Azure的免费试用版

---加成---

坏的是MVC框架“处理”了请求,在给出的示例中(角色) 该框架的用途是添加一个抽象层来方便地处理“域请求”。那么在这种情况下该怎么办呢


提前感谢您的帮助!

这是SQL Azure上的预期结果。它应该在大约0.5%的时间发生,而不是30%

SQL Azure中的连接失败很常见。这是因为 应用程序将创建一个连接池,但当您的一方考虑 这些连接已结束,Azure可以在其末端终止它们 你永远也不会知道


您应该在代码上实现重试逻辑,以防出现其中一个超时。Microsoft已经为此提供了一个库:我认为Azure和SQL Server的意思是(名称更改的速度比我跟踪的速度快),而不是IAAS。首先,您需要确定应用程序是否受到限制,请参阅本文并对其进行仔细阅读:。如果您的应用程序受到限制,则需要重新审视您的设计,并说明被限制的具体原因。

奇怪,但我们觉得错误发生得更频繁继续使用IExplorer(与Chrome相比)。我不认为这是与浏览器相关的问题。你从哪里连接到数据库?你的web服务器在本地吗?数据库是Azure数据库。是的,你是