Wie auf ein PHP-Web-Service aus ASP.Net?

Ich versuche ein web service in C# ASP.Net Web-Anwendung. Die Dienstleistung ist gebaut in PHP und liegt auf einigen remote-server nicht unter meiner Kontrolle, so kann ich es ändern zum hinzufügen von meta-Daten oder etwas anderes in es.

Wenn ich die "Add Web Reference" - option in Visual Studio 2008,
Ich erhalte die folgende Fehlermeldung:

HTML-Dokument nicht enthalten Web
service discovery Informationen.

beim Versuch, fügen Sie die folgende web service.

https://subreg.forpsi.com/robot2/subreg_command.php?wsdl

Den web-service-Funktionen werden ausgesetzt und wird in Visual Studio 2008. ich konnte jedoch nicht den Verweis hinzuzufügen, um es für den Einsatz in ASP.Net -Anwendung.

t3Service" Beschreibung

Methoden
__construct ( )

create_contact ( )

get_contact ( )

get_domain_info ( )

get_last_error_code ( )

get_last_error_msg ( )

get_NSSET ( )

get_owner_mail ( )

login ( )

register_domain ( )

register_domain_with_admin_contacts (
)

renew_domain ( )

request_sendmail ( )

send_auth_info ( )

transfer_domain ( )

  1. Habe ich auch versucht die wsdl.exe Methode durch die Abfrage der xml kopieren und mit einer wsdl-Datei und die Generierung einer proxy-Klasse. Aber die wsdl-Ausgabe enthält Warnungen, und der proxy-Klasse generiert, überspringt der exponierten Funktionen und erzeugt so etwas wie dieses:

    //CODEGEN: Der Betrieb verbindlich "create_contact' aus dem Namensraum 'urn:t3' wurde ignoriert. Jede Nachricht Teil in einem use=verschlüsselte Nachricht muss einen Typ angeben.
    //CODEGEN: Der Betrieb verbindlich "get_contact' aus dem Namensraum 'urn:t3' wurde ignoriert. Jede Nachricht Teil in einem use=verschlüsselte Nachricht muss einen Typ angeben.
    //CODEGEN: Der Betrieb verbindlich "get_domain_info' aus dem Namensraum 'urn:t3' wurde ignoriert. Jede Nachricht Teil in einem use=verschlüsselte Nachricht muss einen Typ angeben.
    //CODEGEN: Der Betrieb verbindlich "get_last_error_code' aus dem Namensraum 'urn:t3' wurde ignoriert. Jede Nachricht Teil in einem use=verschlüsselte Nachricht muss einen Typ angeben.
    //CODEGEN: Der Betrieb verbindlich "get_last_error_msg' aus dem Namensraum 'urn:t3' wurde ignoriert. Jede Nachricht Teil in einem use=verschlüsselte Nachricht muss einen Typ angeben.
    //CODEGEN: Der Betrieb verbindlich "get_NSSET' aus dem Namensraum 'urn:t3' wurde ignoriert. Jede Nachricht Teil in einem use=verschlüsselte Nachricht muss einen Typ angeben.
    //CODEGEN: Der Betrieb verbindlich "get_owner_mail' aus dem Namensraum 'urn:t3' wurde ignoriert. Jede Nachricht Teil in einem use=verschlüsselte Nachricht muss einen Typ angeben.
    //CODEGEN: Der Betrieb verbindlich "send_auth_info' aus dem Namensraum 'urn:t3' wurde ignoriert. Jede Nachricht Teil in einem use=verschlüsselte Nachricht muss einen Typ angeben.
    //CODEGEN: Der Betrieb verbindlich "transfer_domain' aus dem Namensraum 'urn:t3' wurde ignoriert. Jede Nachricht Teil in einem use=verschlüsselte Nachricht muss einen Typ angeben.
    //CODEGEN: Der Betrieb verbindlich "request_sendmail' aus dem Namensraum 'urn:t3' wurde ignoriert. Jede Nachricht Teil in einem use=verschlüsselte Nachricht muss einen Typ angeben.
    //CODEGEN: Der Betrieb verbindlich 'login' aus dem Namensraum 'urn:t3' wurde ignoriert. Jede Nachricht Teil in einem use=verschlüsselte Nachricht muss einen Typ angeben.
    //CODEGEN: Der Betrieb verbindlich "register_domain' aus dem Namensraum 'urn:t3' wurde ignoriert. Jede Nachricht Teil in einem use=verschlüsselte Nachricht muss einen Typ angeben.
    //CODEGEN: Der Betrieb verbindlich "register_domain_with_admin_contacts' aus dem Namensraum 'urn:t3' wurde ignoriert. Jede Nachricht Teil in einem use=verschlüsselte Nachricht muss einen Typ angeben.
    //CODEGEN: Der Betrieb verbindlich "renew_domain' aus dem Namensraum 'urn:t3' wurde ignoriert. Jede Nachricht Teil in einem use=verschlüsselte Nachricht muss einen Typ angeben.

Edit:

Habe ich versucht, dieses Stück code für meine hand codiert Klasse.

public String makeWebRequest(String methodName)
        {
              //Create the web request  
              HttpWebRequest request = WebRequest.Create("https://subreg.forpsi.com/robot2/subreg_command.php/") as HttpWebRequest;  
              //Add authentication to request  
              request.Credentials = new NetworkCredential("[email protected]", "bar");
              request.Method = "POST";
              request.ContentType = "text/xml";
              request.Headers.Add("SOAPAction: https://subreg.forpsi.com/robot2/subreg_command.php/" + methodName);

            //Get response  
          using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)  
             {  
               //Get the response stream  
               StreamReader reader = new StreamReader(response.GetResponseStream());  
               //Console application output  
               //Console.WriteLine(reader.ReadToEnd());
               return reader.ReadToEnd();
             }  
        }

Aber wenn ich versuche, eine Reaktion zu erhalten, dann gibt es

Dem remote server hat einen Fehler zurückgegeben: (500) Internal Server Error.

Schreibe einen Kommentar