Guest User

Untitled

a guest
Dec 11th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.81 KB | None | 0 0
  1. using System;
  2. using System.ServiceModel;
  3. using System.ServiceModel.Channels;
  4. using System.ServiceModel.Description;
  5.  
  6. namespace WcfAppServer
  7. {
  8. public class ServiceHostWrapper : MarshalByRefObject
  9. {
  10. private ServiceHost _serviceHost;
  11. public void CreateHost(Type serviceType, Type implementedContract, Uri address, bool useDebugSettings)
  12. {
  13. _serviceHost = new ServiceHost(serviceType, address);
  14.  
  15. Binding binding = WcfHelper.GetBinding(address.ToString(), false);
  16.  
  17. _serviceHost.AddServiceEndpoint(implementedContract, binding, address);
  18.  
  19. if (useDebugSettings)
  20. SetupMexAndDebugBehaviour(address);
  21. }
  22.  
  23. private void SetupMexAndDebugBehaviour(Uri address)
  24. {
  25. var serviceMetadataBehavior = _serviceHost.Description.Behaviors.Find<ServiceMetadataBehavior>();
  26.  
  27. if (serviceMetadataBehavior == null)
  28. {
  29. serviceMetadataBehavior = new ServiceMetadataBehavior();
  30. _serviceHost.Description.Behaviors.Add(serviceMetadataBehavior);
  31. }
  32.  
  33. _serviceHost.AddServiceEndpoint(typeof(IMetadataExchange), WcfHelper.GetBinding(address.ToString(), true), "MEX");
  34.  
  35. var serviceDebugBehavior = _serviceHost.Description.Behaviors.Find<ServiceDebugBehavior>();
  36.  
  37. if (serviceDebugBehavior == null)
  38. {
  39. serviceDebugBehavior = new ServiceDebugBehavior()
  40. {
  41. IncludeExceptionDetailInFaults = true
  42. };
  43. _serviceHost.Description.Behaviors.Add(serviceDebugBehavior);
  44. }
  45. }
  46.  
  47. public void Open()
  48. {
  49. _serviceHost.Open();
  50. }
  51.  
  52. public void Close()
  53. {
  54. _serviceHost.Close();
  55. }
  56.  
  57. public void Abort()
  58. {
  59. _serviceHost.Abort();
  60. }
  61. }
  62. }
Add Comment
Please, Sign In to add comment