我是新來的azure webjobs,但我正嘗試使用它們在我需要時使api調用bing地圖api。最終,這將由我的網站上的請求觸發,但目前我只是想弄清楚webjobs。我創建了一個控制檯應用程序,並手動將其作爲webjob添加到示例網站。我所有的測試webjobs(簡單的hello世界類型的東西)都工作得很好,但是當我嘗試調用bing地圖api時,webjob說它已成功完成,但只執行了一部分代碼。下面是webjob的代碼:用webjobs調用另一個網站的api
class Program
{
static void Main(string[] args)
{
Program p = new Program();
p.MakeAsync();
}
public async void MakeAsync()
{
Console.WriteLine("I'm about to call");
CallMe c = new CallMe();
bool x = await c.CallBingMapsAsync(49931);
Console.WriteLine("I called and the result was {0}", x);
}
}
public class CallMe
{
public async Task<bool> CallBingMapsAsync(int zip)
{
RootOb lookups = await BingMaps.GetLocations(zip);
Resource here = lookups.resourceSets[0].resources[0];
string city = here.address.locality;
double lat = here.point.coordinates[0];
double lon = here.point.coordinates[1];
Console.WriteLine("I looked up {0} and found it at ({1} N, {2} W).",city, lat, lon);
return true;
}
}
BingMaps.GetLocations()
檢索數據,並將其轉換爲一個對象的格式。當我在Visual Studio中運行它時,一切正常,並且正確的東西被打印到控制檯等。
當我壓縮這個並將其添加爲webjob時,api調用要麼不會發生,要麼webjob完成在它發生之前。當我在運行後查看日誌時,發現控制檯消息「我即將致電」,然後狀態更改爲成功,Webjob完成而無需運行任何其他代碼。像這樣的webjob不能用api調用,還是我只是做錯了什麼,有一個修復?再次,我是webjobs的新手,所以任何簡單的建議都會很棒。謝謝!