code_junkie

Run WCF ServiceHost with multiple contracts

Nov 12th, 2011
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.35 KB | None | 0 0
  1. servicehost = new ServiceHost(typeof(MyService1));
  2. servicehost.AddServiceEndpoint(typeof(IMyService1), new NetTcpBinding(), "net.tcp://127.0.0.1:800/MyApp/MyService1");
  3. servicehost.Open();
  4.  
  5. servicehost = new ServiceHost(typeof(MyService1));
  6. servicehost.AddServiceEndpoint(typeof(IMyService1), new NetTcpBinding(), "net.tcp://127.0.0.1:800/MyApp/MyService1");
  7. servicehost.AddServiceEndpoint(typeof(IMyService2), new NetTcpBinding(), "net.tcp://127.0.0.1:800/MyApp/MyService2");
  8. servicehost.Open();
  9.  
  10. servicehost = new ServiceHost(typeof(WcfEntryPoint));
  11. servicehost.Open();
  12.  
  13. public class WcfEntryPoint : IMyService1, IMyService2
  14. {
  15. #region IMyService1
  16. #endregion
  17.  
  18. #region IMyService2
  19. #endregion
  20. }
  21.  
  22. // WcfEntryPoint.IMyService1.cs
  23. public partial class WcfEntryPoint : IMyService1
  24. {
  25. // IMyService1 methods
  26. }
  27.  
  28. // WcfEntryPoint.IMyService2.cs
  29. public partial class WcfEntryPoint : IMyService2
  30. {
  31. // IMyService2 methods
  32. }
  33.  
  34. private void PublishWcfEndpoints()
  35. {
  36. var mappings = new Dictionary<Type, Type>
  37. {
  38. {typeof (IAuthenticationService), typeof (AuthenticationService)},
  39. {typeof(IUserService), typeof(UserService)},
  40. {typeof(IClientService), typeof(ClientService)}
  41. };
  42.  
  43.  
  44. foreach (var type in mappings)
  45. {
  46. Type contractType = type.Key;
  47. Type implementationType = type.Value;
  48.  
  49. ServiceHost serviceHost = new ServiceHost(implementationType);
  50. ServiceEndpoint endpoint = serviceHost.AddServiceEndpoint(contractType, ServiceHelper.GetDefaultBinding(),
  51. Properties.Settings.Default.ServiceUrl + "/" + contractType.Name);
  52. endpoint.Behaviors.Add(new ServerSessionBehavior());
  53.  
  54. ServiceDebugBehavior serviceDebugBehaviour =
  55. serviceHost.Description.Behaviors.Find<ServiceDebugBehavior>();
  56. serviceDebugBehaviour.IncludeExceptionDetailInFaults = true;
  57.  
  58. log.DebugFormat("Published Service endpoint: {0}", Properties.Settings.Default.ServiceUrl);
  59.  
  60. serviceHost.Open();
  61. serviceHosts.Add(serviceHost);
  62. }
  63.  
  64. }
  65.  
  66. host1 = new ServiceHost(typeof(MyService1));
  67. host2 = new ServiceHost(typeof(MyService2));
  68.  
  69. host1.Open();
  70. host2.Open();
  71.  
  72. public class MyService1 : IMyService1
  73. {
  74. #region IMyService1
  75. #endregion
  76. }
  77.  
  78. public class MyService2 : IMyService2
  79. {
  80. #region IMyService2
  81. #endregion
  82. }
Add Comment
Please, Sign In to add comment