這裏是我以前通過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應用程序在應用程序級別閒置的時間。 –