Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 1083875
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 16, 20262026-05-16T22:29:29+00:00 2026-05-16T22:29:29+00:00

I have a need to run multiple WCF services at the same time, from

  • 0

I have a need to run multiple WCF services at the same time, from a single windows service. Each WCF service is basically the same, but has one object specific to that instance. So with the following service class:

public class MyService : IMyContract
{
    public MyType MyObject { get; set; }

    public MyService(MyType myObject)
    {
        this.MyObject = myObject;
    }
    // more here...
}

I hoped I would be able to do something like this:

MyType o1 = new MyType();
MyService s1 = new MyService(o1);
ServiceHost host1 = new ServiceHost(s1, anEndpointAddress);
MyType o2 = new MyType();
MyService s2 = new MyService(s2);
ServiceHost host2 = new ServiceHost(s2, anEndpointAddress);

The problem is, that if you use the ServiceHost constructor that takes an object as its first argument, that object needs to be a singletonInstance, but I need multiple instances.

On the other hand, if I use the constructor which takes a type as its first argument (ServiceHost host = new ServiceHost(typeof(MyService), endpointAddress);), I don’t know how I can set MyObject to a suitable value.

Is there a way to solve this problem?

Thanks, regards, Miel.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-16T22:29:29+00:00Added an answer on May 16, 2026 at 10:29 pm

    I can think of two ways – way 2 will be preferred approach.

    1. Create multiple classes that simply inherits from your service class. For example,

      public class MyService1 : MyService { 
      ... // put a constructor that accepts your object 
      }
      public class MyService2 : MyService { ...  }
      
      ...
      

    And now host as

    MyType o1 = new MyType();
    MyService s1 = new MyService1(o1);
    ServiceHost host1 = new ServiceHost(s1, anEndpointAddress);
    MyType o2 = new MyType();
    MyService s2 = new MyService2(s2);
    ServiceHost host2 = new ServiceHost(s2, anEndpointAddress);
    

    If you don;t want singleton then you need to modify these classes such as

     public class MyService1 : MyService
    {
       public MyService1() : base(new MyType()) { }
    }
    

    and then use another service host constructor

    ServiceHost host1 = new ServiceHost(typeof(MyService1), anEndpointAddress);
    

    2. I would prefer this approach. Service implementation will not have instance variable holding MyObject. Write custom ServiceHost class such as

    public class MyServiceHost : ServiceHost
    {
        public MyType MyObject { get; private set; }
    
       public MyServiceHost(Type serviceType, Uri[] baseAddresses, MyType myObject) 
         :base(serviceType, baseAddresses)
       {
         this.MyObject = myObject;
       }
    }
    

    Now, host your service on multiple endpoint addresses using

    MyType o1 = new MyType();
    ServiceHost host1 = new MyServiceHost(typeof(MyService, anEndpointAddress, o1);
    

    In service methods, use OperationContext.Current.Host to get servicehost and from hostm you can get your object.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Do I need to have separate/multiple workers to run multiple websites (each with a
I have multiple WCF services that share some data contracts and need to generate
I need my application run in multiple screen resolutions. Currently I have specified all
I have a WCF service with multiple operations exposed as a RESTful API. Most
I am in a situation where I need to run multiple times the same
I have multiple sets of code I need to run in Access 2007 and
I have a web service that I need to run on a website. It
I need to have stored procedure where I can run multiple cursors. Loop over
I have a reasonably complex macro that I need to run on multiple different
I have a need to collect data from multiple sources (xml or JSON format)

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.