本文整理汇总了C#中System.ServiceModel.ServiceHost类的典型用法代码示例。如果您正苦于以下问题:C# ServiceHost类的具体用法?C# ServiceHost怎么用?C# ServiceHost使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ServiceHost类属于System.ServiceModel命名空间,在下文中一共展示了ServiceHost类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ShouldSetShieldingWithNonIncludeExceptionDetailInFaults
public void ShouldSetShieldingWithNonIncludeExceptionDetailInFaults()
{
// create a mock service and its endpoint.
Uri serviceUri = new Uri("http://tests:30003");
ServiceHost host = new ServiceHost(typeof(MockService), serviceUri);
host.AddServiceEndpoint(typeof(IMockService), new WSHttpBinding(), serviceUri);
host.Open();
try
{
// check that we have no ErrorHandler loaded into each channel that
// has IncludeExceptionDetailInFaults turned off.
foreach (ChannelDispatcher dispatcher in host.ChannelDispatchers)
{
Assert.AreEqual(0, dispatcher.ErrorHandlers.Count);
Assert.IsFalse(dispatcher.IncludeExceptionDetailInFaults);
}
ExceptionShieldingBehavior behavior = new ExceptionShieldingBehavior();
behavior.ApplyDispatchBehavior(null, host);
// check that the ExceptionShieldingErrorHandler was assigned to each channel
foreach (ChannelDispatcher dispatcher in host.ChannelDispatchers)
{
Assert.AreEqual(1, dispatcher.ErrorHandlers.Count);
Assert.IsTrue(dispatcher.ErrorHandlers[0].GetType().IsAssignableFrom(typeof(ExceptionShieldingErrorHandler)));
}
}
finally
{
if (host.State == CommunicationState.Opened)
{
host.Close();
}
}
}
示例2: Start
public void Start()
{
_source = new CancellationTokenSource();
var token = _source.Token;
_listenerTask = new Task(() =>
{
BusListener.MessageReceivedEvent += (s, e) => Console.WriteLine("Received message at " + e.Endpoint + " of type " + e.MessageType);
BusListener.MessageSentEvent += (s, e) => Console.WriteLine("Sent message " + e.MessageType);
BusListener.BusStartedEvent += (s, e) => Console.WriteLine("Bus started " + e.Endpoint);
BusListener.MessageExceptionEvent += (s, e) => Console.WriteLine("Exception with message " + e.Endpoint + " for type " + e.MessageType + " with value " + e.Exception);
using (var host = new ServiceHost(_listener, new[] { new Uri("net.tcp://localhost:5050") }))
{
host.AddServiceEndpoint(typeof(IBusListener), new NetTcpBinding(), "NServiceBus.Diagnostics");
host.Opened += (s, e) => Console.WriteLine("Listening for events...");
host.Closed += (s, e) => Console.WriteLine("Closed listening for events...");
host.Open();
while (!token.IsCancellationRequested) { }
host.Close();
}
}, token);
_listenerTask.Start();
_listenerTask.Wait(10000);
}
示例3: CacheHostEngine
/// <summary>
/// The constructor.
/// </summary>
/// <param name="cacheHostInformationPoller">The cache host information poller.</param>
/// <param name="memCache">The mem cache to use for storing objects.</param>
/// <param name="clientToCacheServiceHost">The client to cache service host.</param>
/// <param name="cacheManagerClient">The cache manager client.</param>
public CacheHostEngine(IRunnable cacheHostInformationPoller, MemCache memCache, ServiceHost clientToCacheServiceHost)
{
// Sanitize
if (cacheHostInformationPoller == null)
{
throw new ArgumentNullException("cacheHostInformationPoller");
}
if (memCache == null)
{
throw new ArgumentNullException("memCache");
}
if (clientToCacheServiceHost == null)
{
throw new ArgumentNullException("clientToCacheServiceHost");
}
// Set the cache host information poller
_cacheHostInformationPoller = cacheHostInformationPoller;
// Set the mem cache container instance
MemCacheContainer.Instance = memCache;
// Initialize the service hosts
_clientToCacheServiceHost = clientToCacheServiceHost;
}
示例4: Main
public static void Main ()
{
SymmetricSecurityBindingElement sbe =
new SymmetricSecurityBindingElement ();
sbe.ProtectionTokenParameters =
new SslSecurityTokenParameters ();
ServiceHost host = new ServiceHost (typeof (Foo));
HttpTransportBindingElement hbe =
new HttpTransportBindingElement ();
CustomBinding binding = new CustomBinding (sbe, hbe);
binding.ReceiveTimeout = TimeSpan.FromSeconds (5);
host.AddServiceEndpoint ("IFoo",
binding, new Uri ("http://localhost:8080"));
ServiceCredentials cred = new ServiceCredentials ();
cred.SecureConversationAuthentication.SecurityStateEncoder =
new MyEncoder ();
cred.ServiceCertificate.Certificate =
new X509Certificate2 ("test.pfx", "mono");
cred.ClientCertificate.Authentication.CertificateValidationMode =
X509CertificateValidationMode.None;
host.Description.Behaviors.Add (cred);
host.Description.Behaviors.Find<ServiceDebugBehavior> ()
.IncludeExceptionDetailInFaults = true;
// foreach (ServiceEndpoint se in host.Description.Endpoints)
// se.Behaviors.Add (new StdErrInspectionBehavior ());
ServiceMetadataBehavior smb = new ServiceMetadataBehavior ();
smb.HttpGetEnabled = true;
smb.HttpGetUrl = new Uri ("http://localhost:8080/wsdl");
host.Description.Behaviors.Add (smb);
host.Open ();
Console.WriteLine ("Hit [CR] key to close ...");
Console.ReadLine ();
host.Close ();
}
示例5: ProbeInitialServices
private void ProbeInitialServices(ServiceHost serviceHost)
{
var probe = new DiscoveryClient(UdpDiscoveryEndpoint ?? new UdpDiscoveryEndpoint());
probe.FindProgressChanged += (_, args) => RegisterService(serviceHost, args.EndpointDiscoveryMetadata);
probe.FindCompleted += (_, args) => probe.Close();
probe.FindAsync(ProbeCriteria ?? new FindCriteria());
}
示例6: RegisterAsServer
public static ITestRunner RegisterAsServer(ITestOutput output, Options options)
{
var host = new ServiceHost(output);
int i;
for (i = 0; i < 50; i += 10) {
try {
host.AddServiceEndpoint(typeof(ITestOutput), BindingFactory(), "http://localhost:" + (StartPort + i) + "/");
break;
} catch (AddressAlreadyInUseException) {
}
}
host.Open();
var start = DateTime.Now;
Exception final = null;
var res = new ChannelFactory<ITestRunner>(BindingFactory(), "http://localhost:" + (StartPort + i + 1) + "/").CreateChannel();
while (DateTime.Now - start < TimeSpan.FromSeconds(5)) {
try {
res.Ping();
return res;
} catch (Exception e) {
final = e;
}
}
throw final;
}
示例7: Main
static void Main(string[] args)
{
Uri baseAddress = new Uri("http://localhost:8000/GlydeServiceModelExamples/Service");
ServiceHost selfHost = new ServiceHost(typeof(StringManipulatorService), baseAddress);
try
{
selfHost.AddServiceEndpoint(
typeof(IStringManipulator),
new WSHttpBinding(),
"StringManipulatorService");
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
selfHost.Description.Behaviors.Add(smb);
// Step 5 of the hosting procedure: Start (and then stop) the service.
selfHost.Open();
Console.WriteLine("The service is ready.");
Console.WriteLine("Press <ENTER> to terminate service.");
Console.WriteLine();
Console.ReadLine();
// Close the ServiceHostBase to shutdown the service.
selfHost.Close();
}
catch (CommunicationException ce)
{
Console.WriteLine("An exception occurred: {0}", ce.Message);
selfHost.Abort();
}
}
示例8: Main
static void Main(string[] args)
{
Uri baseAddress = new Uri("http://localhost:8773/BasicService");
BasicHttpBinding binding = new BasicHttpBinding();
binding.Name = "Basic_Binding";
binding.HostNameComparisonMode = HostNameComparisonMode.WeakWildcard;
binding.Security.Mode = BasicHttpSecurityMode.None;
using (ServiceHost host = new ServiceHost(typeof(BasicService), baseAddress))
{
host.AddServiceEndpoint(typeof(IBasicService), binding, "http://localhost:8773/BasicService/mex");
// Enable metadata publishing.
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
host.Description.Behaviors.Add(smb);
host.Open();
Console.WriteLine("The service is ready at {0}", baseAddress);
Console.WriteLine("Press <Enter> to stop the service.");
Console.ReadLine();
// Close the ServiceHost.
host.Close();
}
}
示例9: Bootstrapper
public Bootstrapper()
{
Naru.Core.UnhandledExceptionHandler.InstallDomainUnhandledException();
Naru.TPL.UnhandledExceptionHandler.InstallTaskUnobservedException();
IContainer container = null;
var builder = new ContainerBuilder();
builder.RegisterModule(new Log4NetModule
{
SectionName = "CommonLogging.Nitrogen.Server"
});
builder.RegisterModule(new AgathaServerModule
{
ContainerFactory = () => container,
HandlerAssembly = typeof(AssemblyHook).Assembly,
RequestResponseAssembly = typeof(Common.AssemblyHook).Assembly
});
container = builder.Build();
Console.WriteLine("EndPoint - {0}", END_POINT);
var baseAddress = new Uri(END_POINT);
Host = new ServiceHost(typeof(WcfRequestProcessor), baseAddress);
Host.Open();
}
示例10: button1_Click
private void button1_Click(object sender, EventArgs e)
{
if (serverIsOn)
{
labelStatus.Text = "Turning off...";
labelStatus.Update();
host.Close();
labelStatus.Text = "Server is Off";
button1.Text = "Turn on Server";
listView1.Visible = false;
labelPos2.Visible = false;
Server.saveDatabaseToFile();
t.Stop();
}
else
{
labelStatus.Text = "Turning on...";
labelStatus.Update();
host = new ServiceHost(typeof(Server));
host.Open();
labelStatus.Text = "Server is On";
button1.Text = "Turn off Server";
listView1.Visible = true;
labelPos2.Visible = true;
Invalidate();
t.Start();
}
serverIsOn = !serverIsOn;
}
示例11: StartService
internal static void StartService()
{
//Consider putting the baseAddress in the configuration system
//and getting it here with AppSettings
Uri baseAddress = new Uri( "http://localhost:8080/FileService" );
//Instantiate new ServiceHost
myServiceHost = new ServiceHost( typeof( PracticalWcf.FileService ), baseAddress );
//The following for programatic addition
//WSHttpBinding wsBinding = new WSHttpBinding();
//wsBinding.MessageEncoding = WSMessageEncoding.Mtom;
//myServiceHost.AddServiceEndpoint(
// typeof( MtomSvc.IMtomSample ),
// wsBinding,
// baseAddress );
//the following for programatic addition of Basic Profile 1.1
//BasicHttpBinding binding = new BasicHttpBinding();
//myServiceHost.AddServiceEndpoint(
// typeof( MyService,
// binding,
// baseAddress);
//Open myServiceHost
myServiceHost.Open();
}
示例12: Main
static void Main(string[] args)
{
ServiceHost host = null;
Configuration conf = ConfigurationManager.OpenExeConfiguration(Assembly.GetEntryAssembly().Location);
ServiceModelSectionGroup svcmod = (ServiceModelSectionGroup)conf.GetSectionGroup("system.serviceModel");
foreach (ServiceElement el in svcmod.Services.Services)
{
Type type = Type.GetType(el.Name+",JJY.WCF.Service");
if(type == null)
{
Console.WriteLine(string.Format("服务{0}实例化失败"), el.Name);
}
host = new ServiceHost(type);
//host.AddServiceEndpoint(typeof(IMetadataExchange), MetadataExchangeBindings.CreateMexTcpBinding(), "mex");
try
{
host.Open();
}
catch (Exception ex)
{
Console.WriteLine(string.Format("服务{0}启动失败", el.Name));
Console.WriteLine(string.Format("错误内容:{0}", ex.ToString()));
}
Console.WriteLine(string.Format("{0}已经启动",el.Name));
}
Console.ReadLine();
}
示例13: Main
static void Main(string[] args)
{
try
{
ServiceHost host = new ServiceHost(typeof(RESTService));
host.Open();
if (host.State == CommunicationState.Opened)
{
Console.WriteLine("The service is available:");
foreach (var address in host.BaseAddresses)
{
Console.WriteLine(address);
}
Console.WriteLine();
}
else
{
throw new System.Exception("The service is not in a state OPENED.");
}
}
catch (System.Exception ex)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(ex.Message);
}
Console.ReadKey(true);
}
示例14: Main
static void Main(string[] args)
{
Uri address = new Uri("http://localhost:8080/Lab2.Service.Age");
ServiceHost serviceHost = new ServiceHost(typeof(Days), address);
try
{
serviceHost.AddServiceEndpoint(typeof(IDays),
new WSHttpBinding(),
"Days");
ServiceMetadataBehavior smBehavior = new ServiceMetadataBehavior();
smBehavior.HttpGetEnabled = true;
serviceHost.Description.Behaviors.Add(smBehavior);
serviceHost.Open();
Console.WriteLine("Tjänsten är öppen!");
Console.WriteLine("Tryck enter för att avsluta");
Console.ReadLine();
}
catch (CommunicationException ex)
{
Console.WriteLine(ex.Message);
Console.ReadLine();
throw;
}
finally
{
serviceHost.Close();
}
}
示例15: RegisterService
private void RegisterService(ServiceHost serviceHost, EndpointDiscoveryMetadata endpoint)
{
if (FilterService(serviceHost, endpoint) == false)
{
serviceCatalog.RegisterService(endpoint);
}
}