Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.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
C# SQL Server with Azure access创建with Azure管理库for.Net_C#_Sql Server_Azure_Azure Sdk .net_Azure Management Api - Fatal编程技术网

C# SQL Server with Azure access创建with Azure管理库for.Net

C# SQL Server with Azure access创建with Azure管理库for.Net,c#,sql-server,azure,azure-sdk-.net,azure-management-api,C#,Sql Server,Azure,Azure Sdk .net,Azure Management Api,我使用.Net的azure管理库创建azure SQL server,我需要添加防火墙规则以允许azure服务访问新服务器(如门户中的交换机)。我目前创建的服务器如下所示 sqlServer = Azure.SqlServers .Define(serverName) .WithRegion(region) .WithExistingResourceGroup(resource

我使用.Net的azure管理库创建azure SQL server,我需要添加防火墙规则以允许azure服务访问新服务器(如门户中的交换机)。我目前创建的服务器如下所示

sqlServer = Azure.SqlServers
                    .Define(serverName)
                    .WithRegion(region)
                    .WithExistingResourceGroup(resourceGroup.Name)
                    .WithAdministratorLogin(AppSettings.SqlServerAdminUser)
                    .WithAdministratorPassword(AppSettings.SqlServerAdminPassword)
                    .WithNewFirewallRule("xxx.xxx.xxx.xxx")
                    .WithNewFirewallRule("xxx.xxx.xxx.xxx", "xxx.xxx.xxx.xxx")
                    .WithNewElasticPool(poolName, elasticPoolEdition, databaseName)
                    .Create();
是否有任何我没有找到的选项通常允许Azure服务访问此SQL server

谢谢大家!

是否有任何我没有找到的选项来允许Azure服务 要访问此SQL server

因此,在API级别没有允许Azure服务访问SQL Server的设置。幕后发生的事情是,当您希望通过门户设置此设置时,会为您创建一个具有
0.0.0.0
IP地址的防火墙规则

由于
0.0.0.0
不是真正的IP地址,Azure API将其视为允许访问Azure服务的特例

这也是你需要做的

请尝试以下代码:

sqlServer = Azure.SqlServers
                    .Define(serverName)
                    .WithRegion(region)
                    .WithExistingResourceGroup(resourceGroup.Name)
                    .WithAdministratorLogin(AppSettings.SqlServerAdminUser)
                    .WithAdministratorPassword(AppSettings.SqlServerAdminPassword)
                    .WithNewFirewallRule("0.0.0.0") // Allow access to Azure Services
                    .WithNewFirewallRule("xxx.xxx.xxx.xxx", "xxx.xxx.xxx.xxx")
                    .WithNewElasticPool(poolName, elasticPoolEdition, databaseName)
                    .Create();

您应该看到,您的Azure服务将能够访问此SQL Server。

当您创建新的Azure SQL Server时,如果要启用允许Azure服务访问服务器选项,它实际上会创建一个默认名称为“AllowlWindowsAzureIP”的新防火墙规则使用STARTIPADRESS0.0.0ENDIPADDRES0.0.0

我认为基于上面的默认防火墙规则属性,它应该将startIpAddress和endIpAddress定义为0.0.0

sqlServer = Azure.SqlServers
                    .Define(serverName)
                    .WithRegion(region)
                    .WithExistingResourceGroup(resourceGroup.Name)
                    .WithAdministratorLogin(AppSettings.SqlServerAdminUser)
                    .WithAdministratorPassword(AppSettings.SqlServerAdminPassword)
                    .WithNewFirewallRule("0.0.0.0", "0.0.0.0")
                    .WithNewElasticPool(poolName, elasticPoolEdition, databaseName)
                    .Create();