使用.Net Framework连接Google Cloud SQL异常问题咨询
解决步骤
方案一(官方推荐,安全性更高:使用Cloud SQL Auth Proxy)
你已经验证过SSMS可以通过代理连接实例,该方案不需要调整Cloud SQL的网络配置,优先选择:
- 先将Cloud SQL Auth Proxy配置为Windows系统服务开机自启,避免手动启动时关闭终端就终止代理进程,默认代理会监听本地
127.0.0.1:1433端口。 - 替换你的连接字符串为如下格式,直接指向本地代理端口即可:
<add name="connectionString" connectionString="Data Source=127.0.0.1,1433;Initial Catalog=你的数据库名称;User ID=数据库账号;Password=数据库密码;Encrypt=True;TrustServerCertificate=False;Connect Timeout=30;" providerName="System.Data.SqlClient"/>
注意:System.Data.SqlClient的连接字符串中,端口和地址之间用英文逗号分隔,不要用冒号
方案二(直接公网连接)
如果不使用代理,需要先完成两项前置配置:
- Cloud SQL实例开启公网IP,将你所使用的Compute Engine实例的出口公网IP添加到Cloud SQL的授权网络白名单
- Compute Engine实例的VPC防火墙、Windows本地防火墙都放开1433端口的出站规则
- 调整连接字符串为如下格式:
<add name="connectionString" connectionString="Data Source=tcp:你的Cloud SQL公网IP,1433;Initial Catalog=你的数据库名称;User ID=数据库账号;Password=数据库密码;Encrypt=True;TrustServerCertificate=False;Connect Timeout=30;" providerName="System.Data.SqlClient"/>
额外排查项
如果配置完成依然连接失败,检查IIS站点对应的应用程序池身份,确认使用的账号有访问网络端口的权限,不要使用限制网络访问的内置虚拟账户。
内容的提问来源于stack exchange,提问作者Dan Nick
相关产品推荐
相关产品推荐

