Windows Vista Forums

WCF: How to reference a service that runs in the same process?

  1. #1


    Steve B. Guest

    WCF: How to reference a service that runs in the same process?

    Hi,

    I'm building a service that can act both client and server (two servers can
    communicate each others).

    How can I set my project in order to create the service reference ?

    thanks,
    Steve


      My System SpecsSystem Spec

  2.   


  3. #2


    Arkady Frenkel Guest

    Re: How to reference a service that runs in the same process?

    If you mean, that you want to communicate from one service with another, you
    can use proxy exactly as client or create channel to second service's entry
    point directly :
    channelFactory = new ChannelFactory<YouSecondServiceInterface>(binding,
    address);

    YouSecondServiceInterface channel = channelFactory.CreateChannel();

    Arkady

    "Steve B." <steve_beauge@com.msn_swap_msn_and_com> wrote in message
    news:e0JW4T18GHA.4304@TK2MSFTNGP03.phx.gbl...
    > Hi,
    >
    > I'm building a service that can act both client and server (two servers
    > can communicate each others).
    >
    > How can I set my project in order to create the service reference ?
    >
    > thanks,
    > Steve
    >



      My System SpecsSystem Spec

  4. #3


    Steve B. Guest

    Re: How to reference a service that runs in the same process?

    Let's expose the scenario...

    I want to build a service that runs on multiple serveurs. These services can
    send data to other instances of the service on other computer.

    The sent data is selected by an administrator in a windows app.

    We have :

    Admin computer : run a windows app which is client of "SourceService"
    Server A : run a host which is client of "DestinationService" and host
    "DestinationService" and "SourceService"
    Server B : run a host which is client of "DestinationService" and host
    "DestinationService" and "SourceService"

    The source service have a method like : SendData(Data myData, string
    remoteServer)
    The destination service have a methode like : ReceiveData(Data myDate);

    Inside this method, I have something like this:

    string remote = BuildUri(uriFormat, remoteserver); // build the correct
    remote uri

    DestinationServiceClient proxy = new DestinationServiceClient(remote);

    proxy.ReceiveData(Data myData);


    However, the last line "proxy.ReveiveData" throw an exception 400: bad
    request.

    I also try this code :
    IDestination destProxy = ChannelFactory<IDestination>.CreateChannel(

    new WSHttpBinding(),

    new EndpointAddress(remoteUri)

    );

    destProxy.ReceiveData(myData);



    But I get the same behaviour...

    "Arkady Frenkel" <arkadyf@hotmailxdotx.com> a écrit dans le message de news:
    OSjzAO28GHA.4996@TK2MSFTNGP03.phx.gbl...
    > If you mean, that you want to communicate from one service with another,
    > you can use proxy exactly as client or create channel to second service's
    > entry point directly :
    > channelFactory = new ChannelFactory<YouSecondServiceInterface>(binding,
    > address);
    >
    > YouSecondServiceInterface channel = channelFactory.CreateChannel();
    >
    > Arkady
    >
    > "Steve B." <steve_beauge@com.msn_swap_msn_and_com> wrote in message
    > news:e0JW4T18GHA.4304@TK2MSFTNGP03.phx.gbl...
    >> Hi,
    >>
    >> I'm building a service that can act both client and server (two servers
    >> can communicate each others).
    >>
    >> How can I set my project in order to create the service reference ?
    >>
    >> thanks,
    >> Steve
    >>

    >
    >



      My System SpecsSystem Spec

  5. #4


    Arkady Frenkel Guest

    Re: How to reference a service that runs in the same process?

    That exact scenario of router example from
    http://windowssdk.msdn.microsoft.com...97(VS.80).aspx
    I prefer second way - direct channel without proxy because both sides know
    each other in my case
    Arkady


    "Steve B." <steve_beauge@com.msn_swap_msn_and_com> wrote in message
    news:%23geTCb28GHA.4604@TK2MSFTNGP03.phx.gbl...
    > Let's expose the scenario...
    >
    > I want to build a service that runs on multiple serveurs. These services
    > can send data to other instances of the service on other computer.
    >
    > The sent data is selected by an administrator in a windows app.
    >
    > We have :
    >
    > Admin computer : run a windows app which is client of "SourceService"
    > Server A : run a host which is client of "DestinationService" and host
    > "DestinationService" and "SourceService"
    > Server B : run a host which is client of "DestinationService" and host
    > "DestinationService" and "SourceService"
    >
    > The source service have a method like : SendData(Data myData, string
    > remoteServer)
    > The destination service have a methode like : ReceiveData(Data myDate);
    >
    > Inside this method, I have something like this:
    >
    > string remote = BuildUri(uriFormat, remoteserver); // build the correct
    > remote uri
    >
    > DestinationServiceClient proxy = new DestinationServiceClient(remote);
    >
    > proxy.ReceiveData(Data myData);
    >
    >
    > However, the last line "proxy.ReveiveData" throw an exception 400: bad
    > request.
    >
    > I also try this code :
    > IDestination destProxy = ChannelFactory<IDestination>.CreateChannel(
    >
    > new WSHttpBinding(),
    >
    > new EndpointAddress(remoteUri)
    >
    > );
    >
    > destProxy.ReceiveData(myData);
    >
    >
    >
    > But I get the same behaviour...
    >
    > "Arkady Frenkel" <arkadyf@hotmailxdotx.com> a écrit dans le message de
    > news: OSjzAO28GHA.4996@TK2MSFTNGP03.phx.gbl...
    >> If you mean, that you want to communicate from one service with another,
    >> you can use proxy exactly as client or create channel to second service's
    >> entry point directly :
    >> channelFactory = new ChannelFactory<YouSecondServiceInterface>(binding,
    >> address);
    >>
    >> YouSecondServiceInterface channel = channelFactory.CreateChannel();
    >>
    >> Arkady
    >>
    >> "Steve B." <steve_beauge@com.msn_swap_msn_and_com> wrote in message
    >> news:e0JW4T18GHA.4304@TK2MSFTNGP03.phx.gbl...
    >>> Hi,
    >>>
    >>> I'm building a service that can act both client and server (two servers
    >>> can communicate each others).
    >>>
    >>> How can I set my project in order to create the service reference ?
    >>>
    >>> thanks,
    >>> Steve
    >>>

    >>
    >>

    >
    >



      My System SpecsSystem Spec


WCF: How to reference a service that runs in the same process?
Similar Threads
Thread Forum
Setting process priority so it runs when screen is locked Vista performance & maintenance
vs2008 Add Service Reference generates Reference.cs which wont com Indigo
Error when add reference of the WCF service Indigo
Inconsistent results with Add Service Reference Indigo
Returning an interface reference from a service method Indigo