Coldfusion REST API Rückkehr ‚Verbindungsfehler. Statuscode nicht verfügbar.‘ wenn sie aufgerufen fern

StackOverflow https://stackoverflow.com/questions/3902654

Frage

Jetzt möchte ich das Präfix mit Ich bin nicht sicher, ob dies hier oder auf dem Server Fehler sein, damit ich es hier posten werde mit zu beginnen.

Wir entwickeln eine REST-API in Coldfusion 9, die auf IIS 7 für einen Kunden gehostet wird, die auf bestimmte Anrufe einen anderen internen Webservice aufrufen müssen. Beim Ausführen dieser Anrufe vom Server, dass der API auf keine Fehler vorhanden sind gehostet wird, aber wenn wir den Anruf von einem entfernten Rechner zu machen wird die folgende Meldung zurückgegeben:

  

"Verbindungsfehler. Statuscode nicht verfügbar. "

Ich habe das Problem gegoogelt, wo die folgenden als Fix vorgeschlagen wurde: http://www.talkingtree.com/blog/index.cfm/2004/7/28/20040729 aber es für mich nicht funktioniert. Im Folgendes sind die Noten von meinen eigenen Tests:

  • Die Anrufe, die das Problem verursachen sind eine Mischung aus get, put, Post und löschen.
  • Der einzige gemeinsame Teil jeden Anruf ist das Gespräch mit dem gleichen Webservice.
  • Ich kann den Webservice aufrufen direkt von den Orten, an denen ich die Remote-Anrufe von der API zu machen.
  • Während alle die Anrufe einen Anruf an den gleichen Webservice machen sie nicht alle die selben Aufruf der Webservice machen.
War es hilfreich?

Lösung 2

Die Frage stellte sich heraus, dass jeder der Anrufe Standardauthentifizierung erforderlich, die die Anrufe selbst wurden Handhabung, jedoch grundlegende Authentifizierung auf in IIS gedreht worden, die alle Anfragen mit einem Autorisierungsheader IIS abfangen verursacht wurde.

Dies führt zu einem Problem, da IIS geht davon aus, dass, wenn die Authentifizierung übergeben oben wird dann für einen Benutzer auf dieser Maschine / Domain ist, und würde lehnen alle anderen Anmeldeinformationen (die für das System gültig waren). Es funktioniert, wenn wir in die Maschine angemeldet wurden, weil es kam lokal es nicht den Benutzer zu authentifizieren brauchen.

Andere Tipps

Ideen:

Rufen Sie den Web-Service per Remote-URL, dass Entschlüsse auf den internen Coldfusion-Server verwendet (zum Beispiel http: // [Servername]: 8300). Sie werden wahrscheinlich bis zu einem gewissen Konfiguration haben diese Funktion zu erhalten. Grund dafür, so ist zu erkennen, ob IIS oder Coldfusion ist die Ursache. Wenn Sie den internen Server schlagen können aus der Ferne dann ist IIS wahrscheinlich das Problem.

Ist der Webservice-Aufruf über SSL? Wenn ja, ist auch entfernte Anrufer Coldfusion? Wenn Sie beide ja beantwortet haben, überprüfen Sie, ob das SSL-Zertifikat, das von dem entfernten Anrufer JVM vertrauenswürdig ist. Wenn nicht, müssen Sie es als Teil der Schlüsselspeicher JVM registrieren.

Können Sie den Host-Server von dem Anrufer ping? Wenn nicht, wird der Anrufer Bedarf ein „hosts“ Eintrag?

Wenn diese Option aktiviert auf dem Host, das .NET-Filter überprüfen und wie sie interagiert mit HTTP-Aufrufe. Ich habe eine Situation erlebt, wo ich war nicht in der Lage auf einen Ordner zuzugreifen namens „/ ist“, weil die .NET-Filter die Anforderungen abgefangen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top