簡體   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