Eines Beispiel zum Remoting mit WCF über HTTP

Thomas Darimont

Erfahrenes Mitglied
Hallo,

hier mal ein kleines Beispiel wie man schnell und einfach einen Dienst über HTTP verfügbar macht.

Hierzu müssen wir in unsere Projekte eine Referenz auf:
"C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\System.ServiceModel.dll"
setzen.

Unser Service-Interface (Client Contract):
C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;

namespace De.Tutorials.WCF.Training.Server.Services
{
    [ServiceContract]
    public interface IService
    {
        [OperationContract]
        string Operation(string arg);
    }
}

Unser Service:
C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;

namespace De.Tutorials.WCF.Training.Server.Services.Internal
{
    [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
    public class Service : IService
    {
        #region IService Member

        public string Operation(string arg)
        {
            Console.WriteLine("Server: Operation: " + arg);
            return arg +"#"+ arg;
        }

        #endregion
    }
}

Unser Server:
C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using De.Tutorials.WCF.Training.Server.Services.Internal;
using De.Tutorials.WCF.Training.Server.Services;

namespace De.Tutorials.WCF.Training.Server
{
    public class Server
    {
        public static void Main(string[] args)
        {
            ServiceHost serviceHost = new ServiceHost(new Service());
            serviceHost.AddServiceEndpoint(typeof(IService), new BasicHttpBinding(), "http://localhost:9999/services/Service");
            serviceHost.Open();

            Console.WriteLine("Server running...");
            Console.WriteLine("Press any key to exit");
            Console.ReadKey();

            serviceHost.Close();
        }
    }
}

und hier unser Client:
C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using De.Tutorials.WCF.Training.Server.Services;
using System.ServiceModel;
using System.Threading;

namespace De.Tutorials.WCF.Training.Client
{
    public class Client
    {
        public static void Main(string[] args)
        {
            ChannelFactory<IService> channelFactory = new ChannelFactory<IService>(new BasicHttpBinding(),"http://localhost:9999/services/Service");
            IService service = channelFactory.CreateChannel();
            Console.WriteLine("Client ready...");

            for (int i = 0; i < 100; i++)
            {
                Console.WriteLine("Client: got response " + service.Operation("Hello " +i ));
                Thread.Sleep(1000);
            }
        }
    }
}

Ausgabe (Server):
Code:
Server running...
Press any key to exit
Server: Operation: Hello 0
Server: Operation: Hello 1
Server: Operation: Hello 2
Server: Operation: Hello 3
Server: Operation: Hello 4
Server: Operation: Hello 5
Server: Operation: Hello 6
Server: Operation: Hello 7
Server: Operation: Hello 8
Server: Operation: Hello 9
Server: Operation: Hello 10
Server: Operation: Hello 11
Server: Operation: Hello 12
Server: Operation: Hello 13
Server: Operation: Hello 14
Server: Operation: Hello 15
Server: Operation: Hello 16
Server: Operation: Hello 17
Server: Operation: Hello 18
Server: Operation: Hello 19
Server: Operation: Hello 20
Server: Operation: Hello 21
Server: Operation: Hello 22
Server: Operation: Hello 23
Server: Operation: Hello 24
Server: Operation: Hello 25
Server: Operation: Hello 26
Server: Operation: Hello 27
Server: Operation: Hello 28
Server: Operation: Hello 29
Server: Operation: Hello 30
Server: Operation: Hello 31
Server: Operation: Hello 32
Server: Operation: Hello 33
Server: Operation: Hello 34
Server: Operation: Hello 35
Server: Operation: Hello 36
Server: Operation: Hello 37
Server: Operation: Hello 38
Server: Operation: Hello 39
Server: Operation: Hello 40
Server: Operation: Hello 41
Server: Operation: Hello 42
Server: Operation: Hello 43
Server: Operation: Hello 44
Server: Operation: Hello 45
Server: Operation: Hello 46
Server: Operation: Hello 47
Server: Operation: Hello 48
Server: Operation: Hello 49
Server: Operation: Hello 50
Server: Operation: Hello 51
Server: Operation: Hello 52
Server: Operation: Hello 53
Server: Operation: Hello 54
Server: Operation: Hello 55
Server: Operation: Hello 56
Server: Operation: Hello 57
Server: Operation: Hello 58
Server: Operation: Hello 59
Server: Operation: Hello 60
Server: Operation: Hello 61
Server: Operation: Hello 62
Server: Operation: Hello 63
Server: Operation: Hello 64
Server: Operation: Hello 65
Server: Operation: Hello 66
Server: Operation: Hello 67
Server: Operation: Hello 68
Server: Operation: Hello 69
Server: Operation: Hello 70
Server: Operation: Hello 71
Server: Operation: Hello 72
Server: Operation: Hello 73
Server: Operation: Hello 74
Server: Operation: Hello 75
Server: Operation: Hello 76
Server: Operation: Hello 77
Server: Operation: Hello 78
Server: Operation: Hello 79
Server: Operation: Hello 80
Server: Operation: Hello 81
Server: Operation: Hello 82
Server: Operation: Hello 83
Server: Operation: Hello 84
Server: Operation: Hello 85
Server: Operation: Hello 86
Server: Operation: Hello 87
Server: Operation: Hello 88
Server: Operation: Hello 89
Server: Operation: Hello 90
Server: Operation: Hello 91
Server: Operation: Hello 92
Server: Operation: Hello 93
Server: Operation: Hello 94
Server: Operation: Hello 95
Server: Operation: Hello 96
Server: Operation: Hello 97
Server: Operation: Hello 98
Server: Operation: Hello 99

Ausgabe (Client):
Code:
Client ready...
Client: got response Hello 0#Hello 0
Client: got response Hello 1#Hello 1
Client: got response Hello 2#Hello 2
Client: got response Hello 3#Hello 3
Client: got response Hello 4#Hello 4
Client: got response Hello 5#Hello 5
Client: got response Hello 6#Hello 6
Client: got response Hello 7#Hello 7
Client: got response Hello 8#Hello 8
Client: got response Hello 9#Hello 9
Client: got response Hello 10#Hello 10
Client: got response Hello 11#Hello 11
Client: got response Hello 12#Hello 12
Client: got response Hello 13#Hello 13
Client: got response Hello 14#Hello 14
Client: got response Hello 15#Hello 15
Client: got response Hello 16#Hello 16
Client: got response Hello 17#Hello 17
Client: got response Hello 18#Hello 18
Client: got response Hello 19#Hello 19
Client: got response Hello 20#Hello 20
Client: got response Hello 21#Hello 21
Client: got response Hello 22#Hello 22
Client: got response Hello 23#Hello 23
Client: got response Hello 24#Hello 24
Client: got response Hello 25#Hello 25
Client: got response Hello 26#Hello 26
Client: got response Hello 27#Hello 27
Client: got response Hello 28#Hello 28
Client: got response Hello 29#Hello 29
Client: got response Hello 30#Hello 30
Client: got response Hello 31#Hello 31
Client: got response Hello 32#Hello 32
Client: got response Hello 33#Hello 33
Client: got response Hello 34#Hello 34
Client: got response Hello 35#Hello 35
Client: got response Hello 36#Hello 36
Client: got response Hello 37#Hello 37
Client: got response Hello 38#Hello 38
Client: got response Hello 39#Hello 39
Client: got response Hello 40#Hello 40
Client: got response Hello 41#Hello 41
Client: got response Hello 42#Hello 42
Client: got response Hello 43#Hello 43
Client: got response Hello 44#Hello 44
Client: got response Hello 45#Hello 45
Client: got response Hello 46#Hello 46
Client: got response Hello 47#Hello 47
Client: got response Hello 48#Hello 48
Client: got response Hello 49#Hello 49
Client: got response Hello 50#Hello 50
Client: got response Hello 51#Hello 51
Client: got response Hello 52#Hello 52
Client: got response Hello 53#Hello 53
Client: got response Hello 54#Hello 54
Client: got response Hello 55#Hello 55
Client: got response Hello 56#Hello 56
Client: got response Hello 57#Hello 57
Client: got response Hello 58#Hello 58
Client: got response Hello 59#Hello 59
Client: got response Hello 60#Hello 60
Client: got response Hello 61#Hello 61
Client: got response Hello 62#Hello 62
Client: got response Hello 63#Hello 63
Client: got response Hello 64#Hello 64
Client: got response Hello 65#Hello 65
Client: got response Hello 66#Hello 66
Client: got response Hello 67#Hello 67
Client: got response Hello 68#Hello 68
Client: got response Hello 69#Hello 69
Client: got response Hello 70#Hello 70
Client: got response Hello 71#Hello 71
Client: got response Hello 72#Hello 72
Client: got response Hello 73#Hello 73
Client: got response Hello 74#Hello 74
Client: got response Hello 75#Hello 75
Client: got response Hello 76#Hello 76
Client: got response Hello 77#Hello 77
Client: got response Hello 78#Hello 78
Client: got response Hello 79#Hello 79
Client: got response Hello 80#Hello 80
Client: got response Hello 81#Hello 81
Client: got response Hello 82#Hello 82
Client: got response Hello 83#Hello 83
Client: got response Hello 84#Hello 84
Client: got response Hello 85#Hello 85
Client: got response Hello 86#Hello 86
Client: got response Hello 87#Hello 87
Client: got response Hello 88#Hello 88
Client: got response Hello 89#Hello 89
Client: got response Hello 90#Hello 90
Client: got response Hello 91#Hello 91
Client: got response Hello 92#Hello 92
Client: got response Hello 93#Hello 93
Client: got response Hello 94#Hello 94
Client: got response Hello 95#Hello 95
Client: got response Hello 96#Hello 96
Client: got response Hello 97#Hello 97
Client: got response Hello 98#Hello 98
Client: got response Hello 99#Hello 99
Drücken Sie eine beliebige Taste . . .

Gruß Tom
 

Anhänge

  • De.Tutorials.WCF.Training.zip
    57,5 KB · Aufrufe: 218
Zurück