当我们使用类的方法Uri[] baseAddresses
创建服务主机时,会调用参数。CreateServiceHost
ServiceHostFactory
什么时候调用这个方法?baseaddresses 数组中的值是多少?从哪里设置?
我们可以从头开始设置吗?
谢谢
当我们使用类的方法Uri[] baseAddresses
创建服务主机时,会调用参数。CreateServiceHost
ServiceHostFactory
什么时候调用这个方法?baseaddresses 数组中的值是多少?从哪里设置?
我们可以从头开始设置吗?
谢谢
如果您在 IIS 或其他容器上托管您的服务,它将自动传入(从您的配置文件等)。
如果您以编程方式托管您的服务,它将由您传入。我目前在使用方法本身时遇到问题CreateServiceHost
,但是如果您使用标准ServiceHost
类,它的外观如下(数组Uri
就是您要查找的内容):
using System;
using System.ServiceModel;
using System.ServiceModel.Description;
using MyApp.DatabaseService.Contracts; // IDatabase interface
using MyApp.DatabaseService.Impl; //DatabaseService
public class Program
{
static void Main(string[] args)
{
using (ServiceHost host = new ServiceHost(
typeof(DatabaseService),
new Uri[]{ // <-- baseAddresses
new Uri("http://localhost:8111/DatabaseService"),
new Uri("net.pipe://localhost/DatabaseService")
}))
{
host.AddServiceEndpoint(typeof(IDatabase),
new BasicHttpBinding(),
"");
host.AddServiceEndpoint(typeof(IDatabase),
new NetNamedPipeBinding(),
"");
// Add ability to browse through browser
ServiceMetadataBehavior meta = new ServiceMetadataBehavior();
meta.HttpGetEnabled = true;
host.Description.Behaviors.Add(meta);
host.Open();
Console.WriteLine("IDatabase: DatabaseService");
Console.WriteLine("Service Running. Press Enter to exit...");
Console.ReadLine();
host.Close();
}
}
}