2017-04-09 78 views
0

我已將我的bot應用程序連接到Azure發佈的直接線路API。我目前正在使用命令行客戶端應用程序,bot框架模擬器以及我的機器人的dev.botframework.com主頁來測試應用程序。使用GET請求導致殭屍程序對話框失敗

一切正常,直到我嘗試提交GET請求到REST API。我已經在單獨的項目中測試了GET API請求,並且它在正確工作並且GET請求在實施直接線路信道之前工作。有沒有什麼我需要知道的時候使用機器人直接線上的http請求?

問題

using (var client = new HttpClient()) 
      { 
       client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", headerParam); 
       var response = client.GetAsync(new Uri("someUrl.com/api/v1/auth")).Result; 
       string content = response.Content.ReadAsStringAsync().Result; 
       var jo = JObject.Parse(content); 
       this.token = jo["Result"]["Token"].ToString(); 
      } 
      await context.PostAsync(this.token); 

實際上導致失敗是

var response = client.GetAsync(new Uri("someUrl.com/api/v1/auth")).Result; 

而且是有當它發佈到Azure和運行直接行API調試一個項目一個簡單的方法行代碼?

+0

您的意思是說您已經爲Azure部署了一個webapi應用程序,該應用程序提供了調用[Direct Line REST API](https://docs.botframework.com/en-us/restapi/directline/)的自定義端點?您是否嘗試過使用[Fiddler](http://www.telerik.com/fiddler)在您的客戶端應用程序上捕獲網絡軟件包,或者利用[遠程調試](https://docs.microsoft.com/en-us/azure/app-service-web/web-sites-dotnet-troubleshoot-visual-studio#a-nameremotedebugaremote-debugging-web-apps)。另外,詳細的錯誤信息和堆棧跟蹤是什麼? –

+0

這是來自MSFT部署到Azure的bot框架的bot應用程序。使用我的客戶端應用程序,我可以通過直接線路REST API將消息發送到「智能機器人」。問題是發送一條消息「用帳戶x登錄」bot應用程序,然後創建一個httpClient來認證我自己的REST API。問題是調用'var response = client.GetAsync(new Uri(「someUrl.com/api/v1/auth」))。結果;'結果在'POST請求到「botendpointurl.com」失敗[500]內部服務器錯誤客戶端應用程序我看不到bot應用程序的狀態,因爲它運行在azure上 – Teragon

+0

您的意思是您引用bot應用程序示例並將其部署到Azure Web應用程序,如果是這樣,您能否提供示例鏈接?我的理解是,你使用用戶信息與你的bot應用程序(web app back-end)進行請求,然後通過基本認證向你的自定義rest api發出一個請求,因爲你找到了代碼行,你可以用'try捕獲詳細的錯誤消息(內部異常,堆棧跟蹤)並將其輸出到您的客戶端應用程序,或者參考我之前的評論中的遠程調試**鏈接,以調試託管在Azure Web應用程序上的bot應用程序 –

回答

0

System.Net.WebException:無法連接到遠程服務器---> System.Net.Sockets.SocketException:試圖通過其訪問權限的ip地址

不允許的方式來訪問一個插座

我曾嘗試我的機器人應用程序後端內調用我的自定義REST API,然後我可以利用Remote debugging web apps從託管在Azure上的Web應用程序我的機器人應用程序的檢索結果如下:

enter image description here

搜索相關問題後,我發現在創建新的傳出連接時,當前應用服務計劃的套接字數量會受到限制。您可以嘗試擴展您的應用服務計劃或創建一個新的Web應用程序來隔離此問題。有關更多詳細信息,請參閱此類似的issue和此blog