2017-05-22 13 views
0

私はウェブジョブを殺したいので、どうすればウェブジョブプロセスIDを取得できますか?紺碧の特定のwebjobsのプロセスIDを取得するにはどうすればよいですか?

ウェブジョブプロセスIDを取得することは可能です&プログラミングを使用してウェブジョブを強制終了しますか?

+0

を、あなたは停止コマンドを発行することができるhttps://github.com/projectkudu/kudu/wiki/WebJobs-API#stop -a-continuous-job。これは終了し、再び起動しないことを確認します。それが引き起こされた場合、それはまっすぐではないかもしれません。 –

答えて

0

は、私はそれがウェブ・ジョブ・プロセスID &は、プログラミングを使用してWebの仕事を殺す取得することはできますか?私は、WebジョブプロセスIDを取得することができますどのようにウェブの仕事を殺すためにしたいですか?

あなたの説明によると、私はあなたがwebjobを停止するkudu webjob stop rest apiを使うことができるとお勧めします。

Webジョブは、プロセスを強制終了した後に自動的に再起動します。

あなたの要件を満たすためにKuduの残りのAPIを使用することができます。

あなたは、まず以下のようにあなたの紺碧のWebアプリケーションに展開資格情報を設定できます

注意:ユーザー名とパスワードを覚えて、我々は、アクセストークンを生成するためにそれらを使用します

enter image description here

次に、あなたのWebジョブを停止するリクエストを送信するためのコードを以下のように書くことができます:

URL:https://yourwebsitename.scm.azurewebsites.net/api/continuouswebjobs/TestWebJob/stop

詳細は、あなたは以下のコードを参照できます。

string url = @"https://yourwebsitename.scm.azurewebsites.net/api/continuouswebjobs/TestWebJob/stop"; 

    var httpWebRequest = (HttpWebRequest)WebRequest.Create(url); 

    httpWebRequest.Method = "POST"; 
    httpWebRequest.ContentLength = 0; 

    string logininforation = "usename:password"; 

    byte[] byt = System.Text.Encoding.UTF8.GetBytes(logininforation); 
    string encode = Convert.ToBase64String(byt); 


    httpWebRequest.Headers.Add(HttpRequestHeader.Authorization, "Basic " + encode); 


    // Get the response 
    HttpWebResponse httpResponse = null; 

    httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); 

    Console.WriteLine(httpResponse.StatusCode); 

それでもプロセスを強制終了したい場合は、私はあなたが最初にプロセスを取得するために、以下のURLにリクエストを送信することができます示唆しています。

URL:あなたがプロセスを取得する場合https://yourwebsitename.scm.azurewebsites.net/api/processes

あなたはwebjobのプロセスを殺すためにクーズーに削除リクエストを送信することができます。

詳細あなたがC#のコード以下を参照してください可能性があり、:連続webjobsについては

string url = @"https://yourwebsitename.scm.azurewebsites.net/api/processes"; 

    var httpWebRequest = (HttpWebRequest)WebRequest.Create(url); 

    httpWebRequest.Method = "GET"; 
    httpWebRequest.ContentLength = 0; 

    string logininforation = "username:password"; 

    byte[] byt = System.Text.Encoding.UTF8.GetBytes(logininforation); 
    string encode = Convert.ToBase64String(byt); 


    httpWebRequest.Headers.Add(HttpRequestHeader.Authorization, "Basic " + encode); 


    using (HttpWebResponse response = (HttpWebResponse)httpWebRequest.GetResponse()) 
    { 
     using (System.IO.StreamReader r = new System.IO.StreamReader(response.GetResponseStream())) 
     { 
      string jsonResponse = r.ReadToEnd(); 

      dynamic result = JsonConvert.DeserializeObject(jsonResponse); 

      dynamic resultList = result.Children(); 

      foreach (var item in resultList) 
      { 
       Console.WriteLine(item.name); 
       if (item.name == "yourwebjobname") 
       { 
        Console.WriteLine(item.href); 
        //begin to delete the webjob process 
        string url2 = item.href; 
        var httpWebRequest2 = (HttpWebRequest)WebRequest.Create(url2); 
        httpWebRequest2.Headers.Add(HttpRequestHeader.Authorization, "Basic " + encode); 
        httpWebRequest2.Method = "DELETE"; 
        httpWebRequest2.ContentLength = 0; 
        HttpWebResponse httpResponse2 = null; 
        httpResponse2 = (HttpWebResponse)httpWebRequest2.GetResponse(); 

       } 
      } 
     } 
    } 
+0

ありがとうございました。 –

関連する問題