Der Remoteserver hat einen Fehler zurückgegeben: (500) Internal Server Error
Ich versuche zu nennen, einen webservice. Ich bin immer 500 internal error.
webservice ausgeführt wird .Ich verwendet den folgenden code
Mir immer die Fehlermeldung an dieser Stelle:
WebResponse response = request.GetResponse();
Code:
string requestxml = @"C\request.xml";
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(requestxml);
StringWriter sw = new StringWriter();
XmlTextWriter tx = new XmlTextWriter(sw);
xmlDoc.WriteTo(tx);
byte[] bytes = Encoding.UTF8.GetBytes(sw.ToString());
WebRequest request = WebRequest.Create("http://localhost:3993/test.asmx");
request.Method = "POST";
byte[] byteArray = Encoding.UTF8.GetBytes(sw.ToString());
request.ContentType = "application/xml";
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse response = request.GetResponse();
stack-trace
System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)\\r \ \ n bei System.AppDomain.ExecuteAssembly(String assemblyFile, Beweise assemblySecurity, String[] args)\\r \ \ n bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly ()\\r \ \ n bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)\\r \ \ n bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)\\r \ \ n bei System.Threading.ThreadHelper.ThreadStart()
Powershell-code
$TrustAll=$TAAssembly.CreateInstance("Local.ToolkitExtensions.Net.CertificatePolicy.TrustAll")
[System.Net.ServicePointManager]::CertificatePolicy=$TrustAll
$webRequest = [System.Net.WebRequest]::Create("http://localhost:3993/test.asmx");
$webRequest.Method = "POST";
$webRequest.ContentType = "text/xml";
$con = Get-Content .\Request.xml;
$bytes = [System.Text.Encoding]::UTF8.GetBytes($con);
$webRequest.ContentLength = $bytes.Length;
$ReqStream = $webRequest.GetRequestStream();
$ReqStream.Write($bytes,0,$bytes.Length);
#$ReqStream.Flush();
$ReqStream.Close();
$response = $webRequest.GetResponse();
Aktivieren Sie Debuggen, und den stack-trace.
Führen Sie den lokalen iis für diese , ich schlage vor, Sie schalten zwei Visual Studio auf Projekt ist der client, der andere server ist, nachdem Sie die server - [STRG+F5] du nimmst die Adresse von der server-url, wie Sie getan haben.<br/> Nach, dass Sie gehen, um die client und stellen Sie die Anforderung, es sollte funktionieren.
Andrew, wenn ich Anruf von powershell,die den webservice läuft perfekt reagiert.wenn ich den Aufruf aus c#und es zeigt diese Fehlermeldung
Zeigen Sie uns die PowerShell-code. Es ist etwas anderes zu tun.
InformationsquelleAutor user386258 | 2012-01-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
500-Antwort gibt es ein problem, das in der webservice. Sie Debuggen müssen Sie die webservice, nicht der Aufruf zum service. Ich würde zuerst überprüfen, dass Ihre Methode aufgerufen wird, und dann arbeiten von dort aus.
Wenn Ihr webservice nicht aufgerufen wird, dann überprüfen Sie die XML-Datei gesendet wird, und die URL für den webservice.
Falsch! der webservice ist NICHT perfekt läuft, wenn Sie bekommen 500. Das heißt, 500 zeigt sich, da die WS ist, macht etwas falsch. Die Frage ist nur, warum und was er falsch macht. Die meisten wahrscheinlich "warum" ist, dass 'sw' versaut ist und die WS ist nicht schlau genug, damit umzugehen.
ich kann nennen Sie den Webdienst aus powershell,bin ich immer die Antwort.
InformationsquelleAutor jmoreno
Ich hatte den gleichen Fehler und es war kein problem den WebService. Das problem wurde in der XML-Anforderung, ich war an den server senden.
InformationsquelleAutor Kosta Stojcev