Web-Service-Antwort gibt einen 500 Internal Server Error

Ich geschrieben habe meine eigene web-Dienst, der funktioniert gut für sich alleine stehen. Ich bin dem Aufruf dieser web service von einer anderen Seite, und in dieser Zeit gibt es einen 500 Internal Server error. Ich bin durch diesen Prozess gehen, für das 1. mal und weiß nicht, was das bedeutet oder warum dies geschieht. Eine vorläufige recherche bei Google zeigt ein breites Spektrum von Antworten, obwohl ich couldnt finden irgendetwas bestimmten.

Hier mein Aufruf-code -

List<string> inputList = new List<string>();
inputList.Add("F");
inputList.Add("B");    
List<string> resultList = new List<string>();
var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://localhost/Helpers/MyService.asmx");
httpWebRequest.Headers.Add("SOAPAction", "\"http://tempuri.org/GetOutput\"");
httpWebRequest.ContentType = "text/json";
httpWebRequest.Method = "POST";
JavaScriptSerializer serializer = new JavaScriptSerializer();

using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
    string json = serializer.Serialize(inputList);
    streamWriter.Write(json);
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); *****ERROR HERE

string responseText = String.Empty;
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
    responseText = streamReader.ReadToEnd();
}
resultList = serializer.Deserialize<List<string>>(responseText);

Hier ist meine Web-Service-Code -

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

public class MyService: System.Web.Services.WebService
{        
    public string GetOutput(string jsonStr)
    {
        try
        {
            /*code to format jsonStr and send it along to another web service*/

            var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            string responseText = String.Empty;
            using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
            {
                responseText = streamReader.ReadToEnd();
            }

            //this obj has a head & body
            ResponseObj response_obj = new ResponseObj();                
            response_obj = serializer.Deserialize<ResponseObj>(responseText);                
            List<string> Values = new List<string>();
            if (response_obj.head.result)
                return serializer.Serialize(response_obj.body);

            return "";                  
        }
        catch (Exception ex)
        {
               throw new Exception(ex.Message);
        }
    }
  • Haben Sie versucht, die Einsichtnahme in die request/response mit Spielmann?
  • Nein, ich werde es herunterladen und versuchen Sie es
  • Hosten Sie diese im IIS oder in einem windows service exe?
  • Ich bin hosting dieses in IIS
  • Ich habe fiddler installiert und kann das sehen, fordern Sie in der "Text" - Registerkarte. Aber ich sehe nicht, eine Antwort gibt es als den 500-Fehler tritt auf. Kann fiddler ' mir helfen, diese debug-Ausgabe weiter?
  • 500 Internal Server Error bedeutet im Grunde, dass der code stürzt bei einem gewissen Punkt. Legen Sie eine print-Anweisung in den catch-block und sehen, was die Ausnahme ist. Ich vermute, dass es einer ist, aber nun würden Sie nicht wissen, weil Sie nicht drucken.
  • Meinst du drucken die Ausnahme.Nachricht?
  • Nur tun Console.WriteLine(ex.ToString()); und lassen Sie uns wissen, was es gibt.
  • haben Sie einen Blick auf die windows-Ereignis-log, normalerweise gehe ich dort überprüfen, wenn Sie sich nicht sicher, was passiert ist
  • Heres, was es gibt - "System.Net.WebException: Der Remoteserver hat einen Fehler zurückgegeben: (500) Internal Server Error.\r\ \ n bei System.Net.HttpWebRequest.GetOutput ()\\r \ \ n bei der Anwendung.Helferinnen und Helfer.Test.GetSymbolInfo() in C:\\Users\\.....\\Helpers\\Test.asmx.cs:line 45"

InformationsquelleAutor neuDev33 | 2012-04-24
Schreibe einen Kommentar