2009-07-05 6 views
0

kann ich meine Methoden nicht als Webmethoden in einem Winform verfügbar machen und haben andere Clients sie als Webdienst nennen? Basicall Ich versuche meine Winform-App dazu zu bringen, einen Webservice ohne asp.net oder iis zu hosten.Aussetzen von Methoden als Web-Service-Operationen in Winform

Ich versuche, eine ^% &^& Brombeere zu bekommen mit meinem winform App zu kommunizieren .... versuchte stundenlang für eine andere Art der Betrachtung der beiden immer ohne http WebService zu sprechen.

ich bei UDP war auf der Suche, aber & & BB bietet keine Dokumentation für Visual Studio-Entwicklungs andere als Webservice.

Antwort

1

Eine Sache, mit der viele Leute ein Problem haben, ist, dass sie eine Firewall-Regel hinzufügen oder einen Port vorschreiben müssen, um eine externe Verbindung zum Endpunkt zuzulassen, wenn sie versuchen, von einem Handheld-Gerät zu kommunizieren, das das Internet des Betreibers nutzt Verbindung (anstatt WLAN). Es könnte komplett vermisst werden, da die Brombeere direkt neben Ihnen sitzt und Sie nicht als einen externen Anrufer denken.

wenn das nicht der Fall, einen WCF versucht gehostete Anwendung

Sie können Ihren Dienst mit einem WCF-Endpunkt aus.

von http://msdn.microsoft.com/en-us/library/ms731758.aspx

// Host the service within this EXE console application. 
    public static void Main() 
    { 
     // Create a ServiceHost for the CalculatorService type and use 
     // the base address from config. 
     ServiceHost hostDefault = new ServiceHost(typeof(CalculatorService)); 

     int manualFlowControlLimit = hostDefault.ManualFlowControlLimit; 


     basicHttpBinding portsharingBinding = new basicHttpBinding(); 
     hostDefault.AddServiceEndpoint(typeof(CalculatorService),portsharingBinding,"http://localhost/MyService"); 

     using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService))) 
     { 
        // Open the ServiceHost to start listening for messages. 
      serviceHost.Open(); 
      // The service can now be accessed. 
      Console.WriteLine("The service is ready."); 
      Console.WriteLine("Press <ENTER> to terminate service."); 
      Console.ReadLine(); 

      // Close the ServiceHost. 
      serviceHost.Close(); 
     } 
    } 
+0

Nennen wir das wie einen normalen Webservice (sagen wir vom Blackberry-Gerät) oder eine andere App? –

+0

ja, genau. Du solltest dazu fähig sein. –

+0

haben Sie versucht, den WCF-Dienst von einem BB aus anzurufen? Ich habe versucht, was Sie gesagt haben, es funktioniert gut, rufen Sie den Dienst von einer Windows-App. Wenn ich die Referenz in der Blackberry App hinzufüge, bekomme ich [Error] - Web Referenz Generierung fehlgeschlagen. Im XML-Dokument ist ein Fehler aufgetreten (1, 2). –

0

Sortieren von. Sie können einen SOAP-Service mit WCF hosten, aber ich bin mir nicht sicher, ob das eine großartige Architektur ist.

+0

können Sie hosten _jeder_ WCF-Dienst, nicht ein nur SOAP basiert. Und können Sie sagen, was das Problem mit der Architektur ist? –

+0

Sicher, WCF beschränkt Sie nicht auf SOAP. Die ursprüngliche Frage hat Webdienste spezifiziert, die SOAP implizierten, also habe ich das angesprochen. Was meine architektonischen Bedenken betrifft, so glaube ich, dass sie in der Serverrolle eine GUI-App haben, die einen Web-Service ausstellt. Vielleicht ist es nur meine begrenzte Erfahrung, aber GUI's sind typischerweise Clients. Mit anderen Worten, ich würde die GUI als eine Möglichkeit sehen, den Webserver zu konfigurieren, mit dem der BB eine Verbindung herstellt, anstatt dieser Server zu sein. Dies hat Vorteile hinsichtlich der Verwaltung von Firewalls und dergleichen. –

+1

"Web Services" bedeutet heutzutage eigentlich nichts. Ein Dienst, der JSON zurückgibt, wird weiterhin als Webdienst bezeichnet. –