web-dev-qa-db-ja.com

HttpWebRequest。リモートサーバーがエラーを返しました:(500)内部サーバーエラー

C#のHttpWebRequestについてサポートが必要です。以下のコード行はローカルIISで正常に機能していますが、リモートサーバーにアップロードすると、「リモートサーバーがエラーを返しました:(500)内部サーバーエラー」と表示され始めます。」 GETとPOSTメソッドで多くのバリエーションを試しましたが、何が問題なのか理解できません。以下のコードを調べて、これの何が問題なのか教えてください。

try
{
    string postData = "applicaitonid=abc&deviceid=xyz";
    string uri = System.Configuration.ConfigurationManager.AppSettings.Get("baseUrl") + System.Configuration.ConfigurationManager.AppSettings.Get("ABApiPath") + "ConfirmAppBinding/?" + postData;

    System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)WebRequest.Create(uri);
    request.Method = "POST"; // Set type Post
    //request.Method = "GET";
    request.UserAgent = Request.UserAgent.ToString();
    request.ContentType = @"application/json";
    request.MediaType = "application/json";
    request.Accept = "application/json";
    request.KeepAlive = false;
    request.ProtocolVersion = HttpVersion.Version11;
    //byte[] buffer = Encoding.GetEncoding("UTF-8").GetBytes(postData);
    request.Timeout = 500000;             //Increase timeout for testing

    Stream reqstr = request.GetRequestStream();
    //reqstr.Write(buffer, 0, buffer.Length);
    reqstr.Close();

    // Read Response
    var httpResponse = request.GetResponse();
    using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
    {
        JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
        JsonMessage.message = streamReader.ReadToEnd();
        streamReader.Close();
    }
}
catch (WebException e)
{
    JsonMessage.message = e.Message;
    return Json(JsonMessage, JsonRequestBehavior.AllowGet);
}

お話ししたように、デフォルトのGETメソッドを使用しましたが、問題は解決しませんでした。

5
sim

このコードをキャッチに使用します

catch (WebException e)
{
   string pageContent = new StreamReader(wex.Response.GetResponseStream()).ReadToEnd().ToString();
   return pageContent;
}

直面している正確なエラーが表示されます。

10
SanyTiger

Try and catchブロックを使用して、根本原因を見つけることができます。

catch (WebException ex)
{
    string message = new StreamReader(ex.Response.GetResponseStream()).ReadToEnd();
}
2
Papun Sahoo

暗闇の中で刺します

クエリ文字列にスペルミスがあり、コードでキーを参照すると、null値の例外が返される可能性がありますか?

{ String postData = "applicaitonid=abc&deviceid=xyz"; 
}

する必要があります

{ String postData = "applicationid=abc&deviceid=xyz";  }
1
Wombelite