2016-07-13 4 views
7

से Azure WebJob को ट्रिगर किया गया मैंने Azure ट्रिगर Webjob के रूप में एक कंसोल एप्लिकेशन अपलोड किया। जब मैं इसे Azure पोर्टल से चलाता हूं तो यह ठीक काम कर रहा है। मैं इसे अपने सी # कोड से चलाने के लिए चाहता हूँ। मैं कतार या सेवा बस का उपयोग नहीं करना चाहता हूं। जब मैं उपयोगकर्ता को अपने वेब ऐप में एक विशिष्ट क्रिया करता हूं तो मैं इसे ट्रिगर करना चाहता हूं।कोड

खोज के बाद मैं एक अनुसूचित http://blog.davidebbo.com/2015/05/scheduled-webjob.html

किसी भी विचार कैसे कोड से चलाने के लिए से काम को गति प्रदान करने के लिए एक समाधान है?

उत्तर

6

के रूप में जस्टिन ने कहा, हम इस आवश्यकता को प्राप्त करने के लिए WebJob एपीआई का उपयोग कर सकते हैं। हम इस KUDU एपीआई को यहां देख सकते हैं: https://github.com/projectkudu/kudu/wiki/WebJobs-API

  HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("https://<web appname>.scm.azurewebsites.net/api/triggeredwebjobs/<web job name>/run"); 
      request.Method = "POST"; 
      var byteArray = Encoding.ASCII.GetBytes("user:password"); //we could find user name and password in Azure web app publish profile 
      request.Headers.Add("Authorization", "Basic "+ Convert.ToBase64String(byteArray));    
      request.ContentLength = 0; 
      try 
      { 
       var response = (HttpWebResponse)request.GetResponse(); 
      } 
      catch (Exception e) { 

      } 

यह मेरी तरफ से काम करता है: नीचे मेरी परीक्षण किया कोड है। आशा करता हूँ की ये काम करेगा।

7

आप WebJob API के माध्यम से WebJob को ट्रिगर कर सकते हैं। सी # कोड के बाद निम्नलिखित में शामिल:

http://chriskirby.net/blog/running-your-azure-webjobs-with-the-kudu-api

HttpClient client = new HttpClient(); 
client.BaseAddress = new Uri("https://mysiteslot.scm.azurewebsites.net/api/"); 
// the creds from my .publishsettings file 
var byteArray = Encoding.ASCII.GetBytes("username:password"); 
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray)); 
// POST to the run action for my job 
var response = await client.PostAsync("triggeredwebjobs/moJobName/run", null)