我在Azure Function应用程序中使用.NET 6、Azure Function版本4和SqlClient。
我有一个如下所示的连接字符串
Server=tcp:name.database.windows.net,1433;Initial Catalog=dbName;Persist Security Info=False;User ID=username;Password=password;MultipleActiveResultSets=True;Encrypt=True;TrustServerCertificate=False;Connection Timeout=120;
通常,我通过提供门户、用户名和密码来使用GlobalProtect访问此数据库。现在,我正在开发一个Azure Function应用程序,该应用程序将访问此数据库,但我收到此错误
System.Private.CoreLib:执行函数时出现异常:MyAzurefunction. Core .Net SqlClient数据提供程序:无法打开登录所请求的服务器“serverName”。不允许IP地址为“MyIpAddress”的客户端访问该服务器。若要启用访问,请使用Windows Azure管理门户或对master数据库运行sp_set_firewall_rule,以创建此IP地址或地址范围的防火墙规则。此更改最多可能需要五分钟才能生效。
我知道我得到这个错误,因为我的IP地址没有访问服务器,但我如何通过我的连接字符串连接到它?
1条答案
按热度按时间guykilcj1#
我创建Azure SQL数据库。数据库的连接字符串:
参考图片:
我在visual studio中用. net 6创建了函数应用程序。图片供参考:
我将其发布到Azure。图片供参考:
在已发布页面上选择椭圆(...)并选择管理Azure应用服务设置。参考图像:
在应用页面中单击"添加设置",添加设置名称。参考图片:
在sql_connection中,在Local节中为远程节输入sql db的连接字符串,单击从Local插入值。参考图像:
安装System.Data.SqlClient包在项目的管理Nuget包。我添加了下面的代码连接到SQL数据库:
上述函数每15秒运行一次,根据发货日期更新
Status
列。我在数据库防火墙设置中添加了我的IP地址。
启动15秒后,函数将运行。SalesOrderHeader表中更新的行数的输出:
通过这种方式,我连接到我的SQL数据库到我的函数应用程序。