[英]No response result when using RestSharp(in IIS)
这个问题困扰了我这么长时间。
我编写了一个asp.net项目,并使用RestSharp发布了我的请求以授权用户是否可以登录该站点。
下面是调用授权服务器的方法的代码
public static async Task<UserInfo> ValidatorResult(string userName, string passWord)
{
var client = new RestClient(AuthUrl.BaseUrl);
var request = new RestRequest(AuthUrl.LoginURL, Method.POST);
//client.Proxy = new WebProxy("127.0.0.1", 8888);
request.AddParameter(InformationDefine.CLIENT_ID_ID, InformationDefine.CLIENT_ID);
request.AddParameter(InformationDefine.CLIENT_SECRET_ID, InformationDefine.CLIENT_SECRET);
request.AddParameter(InformationDefine.GRANT_TYPE_ID, InformationDefine.GRANT_TYPE_PASSWORD);
request.AddParameter(InformationDefine.MAIL_ID, userName);
request.AddParameter(InformationDefine.PASSWORD_ID, passWord);
var response = await client.ExecuteTaskAsync<UserInfo>(request);
return response?.Data;
}
这是我的授权服务器的地址常量:
class AuthUrl
{
public const string BaseUrl = @"https://account.mysit.com.cn";
public const string LoginURL = @"/api/oauth/access";
}
当我在本地环境中使用这些代码时,可以获得正确的UserInfo,但是当我将该项目发布到IIS服务器时,调用此方法时,我总是得到500个代码。
错误是“ response?.Data”为空。
我想解决这个问题,尝试了很多方法,但是都失败了。
我想在IIS中得到原因,所以我添加了一行代码
client.Proxy = new WebProxy("127.0.0.1", 8888);
令人惊奇的是,当我打开提琴手时,有时可以获取UserInfo,但是当我关闭提琴手时,错误再次出现。
你能告诉我为什么吗?
以及如何解决这个问题。
谢谢。
ps我忘记了一个细节,在IIS中,mysite的绑定域不在“ localhost”或“ ip:port”种类之下。
我有另一个域,例如“ hai.xxxxx.co”,我的站点地址是“ hai.xxxxx.co:8088”。
在IIS中更新我的绑定配置
我想我知道这个问题的关键。
因为授权不是来自我的服务,所以我需要反向代理。
这就是为什么当我在代码中打开小提琴并设置代理时,无法正常获得响应的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.