我们最近在生产部署过程中将客户端迁移到 SQL Azure 平台。从所有外在迹象来看,它是成功的:与之相连的网络应用程序都在工作。
但是,当我们查看 Azure 监视器时,我们会看到许多失败的连接。我们还没有找到太多解释什么是连接失败的文档。我们的用户都没有报告问题。有谁知道这怎么可能?
使用本文中的示例查询(查看 SQL Azure 实例上的连接问题)
SELECT
[Date From] = EL.[start_time],
[Date To] = EL.[end_time],
[Database Name] = EL.[database_name],
[Event Type] = EL.[event_type],
[Event Sub Type] = EL.[event_subtype_desc],
[Description] = EL.[description],
[Additional Data] = EL.additional_data
FROM sys.event_log EL
WHERE EL.event_type != 'connection_successful'
AND EL.event_subtype_desc != 'idle_connection_timeout'
ORDER BY [Date From] DESC
我们看到这样的结果:
2013-04-19 16:40:00.0000000 2013-04-19 16:45:00.0000000 [DATABASE] connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL
2013-04-19 16:40:00.0000000 2013-04-19 16:45:00.0000000 connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL
2013-04-19 16:35:00.0000000 2013-04-19 16:40:00.0000000 [DATABASE] connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL
2013-04-19 16:35:00.0000000 2013-04-19 16:40:00.0000000 connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL
2013-04-19 16:30:00.0000000 2013-04-19 16:35:00.0000000 [DATABASE] connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL
2013-04-19 16:30:00.0000000 2013-04-19 16:35:00.0000000 connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL
2013-04-19 16:25:00.0000000 2013-04-19 16:30:00.0000000 [DATABASE] connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL
2013-04-19 16:25:00.0000000 2013-04-19 16:30:00.0000000 connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL
2013-04-19 16:20:00.0000000 2013-04-19 16:25:00.0000000 [DATABASE] connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL
2013-04-19 16:20:00.0000000 2013-04-19 16:25:00.0000000 connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL
2013-04-19 16:15:00.0000000 2013-04-19 16:20:00.0000000 [DATABASE] connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL
以及我们的连接字符串示例,根据要求:
<add name="[MyContext]"
providerName="System.Data.SqlClient"
connectionString="
Server=tcp:[machine].database.windows.net,1433;
Database=[database];
User ID=[user]@[machine];
Password=[password];
Trusted_Connection=False;
Encrypt=True;
Connection Timeout=30;"/>