Ich schreibe einen Test-Web-Service, und bemerkte eine seltsame Ecke Fall. Wenn Sie nach dem Port zwei Schrägstriche einfügen, wird die Methode trotzdem für localhost, localhost: 80, 127.0.0.1 und 127.0.0.1:80 aufgerufen. Aber wenn ich es auf dem Webserver versuche, den ich gerade entwickle (Port 55731), schlägt es fehl.C# -Webdienste - warum funktioniert http: // localhost // testservice (zwei Schrägstriche)?
localhost.Service1 s = new localhost.Service1();
string uri = "http://localhost//testService.asmx";
s.Url = uri;
double result = s.multiply(5,5);
Hier ist die spezifischen Fälle:
uri = "http://localhost//testService.asmx"; // works
uri = "http://localhost:80//testService.asmx"; // works
uri = "http://127.0.0.1//testService.asmx"; // works
uri = "http://127.0.0.1:80//testService.asmx"; // works
uri = "http://localhost:55731//testService.asmx"; // fails - HTTP status 400 - bad request
Jede Idee, warum dies der Fall ist? Ich weiß, ich sollte nur einen Schrägstrich nach dem Hafen haben, nur neugierig.