Authorize takes forever with password flow

  • 1
  • Problem
  • Updated 1 week ago
Hey

I use nuget RingCentral.Net to connect to API and Password flow with sandbox Server only platform 

When I connect with console application with the following code I succeed (get token and get call logs)

var rc = new RestClient(Config.Instance.clientId, Config.Instance.clientSecret, Config.Instance.server); 
var token = rc.Authorize(Config.Instance.username, Config.Instance.extension, Config.Instance.password).Result;

When I try to connect to api with an application (ASP.NET MVC) that is on IIS the authorize takes forever, without exception
Photo of station 1 lurie

station 1 lurie

  • 110 Points 100 badge 2x thumb

Posted 2 weeks ago

  • 1
Photo of Tyler Long

Tyler Long, Official Rep

  • 9,828 Points 5k badge 2x thumb
Hi, it might be deadlock issue.

And it is a common C# async programming issue: https://medium.com/rubrikkgroup/understanding-async-avoiding-deadlocks-e41f8f2c6f5d

In short, do not mixed async code and sync code.  If your app is async overall, you should not use .Result.
Photo of station 1 lurie

station 1 lurie

  • 110 Points 100 badge 2x thumb
Thanks, call log work perfect but when i want to send sms like

static async Task Main(string[] args)
{
using (var rc = await Login()) { await SendSms(rc); } }
private static async Task<RestClient> Login()
{
    var rc = new RestClient("***", "*********", "https://platform.devtest.ringcentral.com/");
    await rc.Authorize("+*****", "101", "*****");
    return rc;
} public static async Task SendSms(RestClient rc)
{
    var sms = new CreateSMSMessage()
    {
        @from = new MessageStoreCallerInfoRequest() { phoneNumber = "+****" },
        to = new[] { new MessageStoreCallerInfoRequest() { phoneNumber = "+****" }, },
        text = "test yaacov"
    };
     var resTask = await rc.Restapi().Account().Extension("101").Sms().Post(sms);
}
The Authorize return token but post sms get exception 
System.ObjectDisposedException: 'Cannot access a disposed object.
Object name: 'System.Net.Http.StringContent'.'
When i run same details with Api reference "try it out" button it work fine
(Edited)
Photo of Tyler Long

Tyler Long, Official Rep

  • 9,828 Points 5k badge 2x thumb
"101" is extension number, extension ID is expected when invoking the API.
Photo of station 1 lurie

station 1 lurie

  • 110 Points 100 badge 2x thumb
Thank you very much, now it works great :)
I wasted a lot of time on this :(
Photo of Tyler Long

Tyler Long, Official Rep

  • 9,828 Points 5k badge 2x thumb
Good to known that it works. Have a nice day!