繁体   English   中英

使用RestSharp(在IIS中)时无响应结果

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM