如何在 Azure 中获取特定 Web 作业的进程 ID?
How do I get process id of particular webjobs in azure?
我想终止 Web 作业,那么如何获取 Web 作业进程 ID?
是否可以使用编程获取 Web 作业进程 ID 并终止 Web 作业?
I want to kill web job so how can I get web job process id?is it possible to get web job process id & kill a web jobs using programming?
根据你的描述,我建议你可以使用kudu webjob stop rest api停止webjob。
网络作业将在您终止进程后自动重启。
您可以使用 Kudu rest api 来实现您的要求。
您可以先在您的 Azure 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
如果您获得进程,您可以向 kudu 发送删除请求以终止 webjob 的进程。
更多细节,您可以参考下面的C#代码:
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();
}
}
}
}
我想终止 Web 作业,那么如何获取 Web 作业进程 ID?
是否可以使用编程获取 Web 作业进程 ID 并终止 Web 作业?
I want to kill web job so how can I get web job process id?is it possible to get web job process id & kill a web jobs using programming?
根据你的描述,我建议你可以使用kudu webjob stop rest api停止webjob。
网络作业将在您终止进程后自动重启。
您可以使用 Kudu rest api 来实现您的要求。
您可以先在您的 Azure 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
如果您获得进程,您可以向 kudu 发送删除请求以终止 webjob 的进程。
更多细节,您可以参考下面的C#代码:
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();
}
}
}
}