Azure MySql Rest API.Вставка нового правила брандмауэра - PullRequest
0 голосов
/ 11 июня 2018

Я пытаюсь создать новое правило брандмауэра.У меня нет проблем с обновлением существующих правил, но я не могу создать новые.В ответ я получаю true statusCode, но не вижу результата на портале Azure (через несколько минут).Прикрепленный код принадлежит веб-приложению, которое играет важную роль в групповом ресурсе MySql.Что я делаю не так?

private static string URI_FIREWALL_BASE = "https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/MY_RESOURCE/providers/Microsoft.DBforMySQL/servers/MYSERVER/firewallRules/";

public string AddIPFirewallRule(string email, string IP)
    {
        AuthenticationResult token = AsyncContext.Run(() => AzureActiveDirectory.GetS2SAccessTokenForProdMSAAsync());
        HttpClient client = new HttpClient();
        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);

        JObject NewRule =
            new JObject(
            new JProperty("properties",
                new JObject(
                    new JProperty("startIpAddress", IP),
                    new JProperty("endIpAddress", IP)
                    )));

        var content = JsonConvert.SerializeObject(NewRule);
        var httpContent = new StringContent(content, Encoding.UTF8, "application/json"); 

        HttpResponseMessage resp = AsyncContext.Run(() => client.PutAsync(URI_FIREWALL_BASE + $"{email}?api-version=2017-12-01", httpContent));
        return AsyncContext.Run(() => resp.Content.ReadAsStringAsync());
    }

1 Ответ

0 голосов
/ 12 июня 2018

Наконец я понял.Я должен следовать некоторым правилам, чтобы назвать новую службу, как вы можете видеть, делая то же самое вручную на Azure Portal Desktop.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...