这里是我以前通过Azure的REST API正确关闭我的DW解决方案。我仍然不确定Azure SDK是否有可能执行此操作。
private static string AuthToken { get; set; }
private static TokenCredentials TokenCredentials { get; set; }
private static readonly HttpClient client = new HttpClient();
AuthToken = GetAuthorizationToken();
TokenCredentials = new TokenCredentials(AuthToken);
createPost();
private static string GetAuthorizationToken()
{
ClientCredential cc = new ClientCredential(ClientId, ServicePrincipalPassword);
var context = new AuthenticationContext("https://login.windows.net/" + AzureTenantId);
var result = context.AcquireToken("https://management.azure.com/", cc);
if (result == null)
{
throw new InvalidOperationException("Failed to obtain the JWT token");
}
return result.AccessToken;
}
public void createPost()
{
var request = (HttpWebRequest)WebRequest.Create("https://management.azure.com/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/MYGROUP/providers/Microsoft.Sql/servers/MYSERVER/databases/MYDW/pause?api-version=2014-04-01");
request.Method = "POST";
request.ContentType = "application/json";
request.ContentLength = 0;
request.Headers.Add("Authorization", "Bearer " + AuthToken);
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
System.Diagnostics.Debug.WriteLine(responseString);
}
据我所知,Azure App Service没有任何生命周期事件。您需要检查Web应用程序在应用程序级别闲置的时间。 –