上一篇大致说了下服务怎么创建的,接着就是寄宿跟配置文件。
其实这个寄宿,对于入门的来说,就是这个媒介之类的让这个软件能够正常的在后台运行就行了。跟java里面的那个tomcat似的。
寄宿的方法有很多种,网上介绍的也比较多,我不做介绍只上代码和个人的理解:
一、第一种寄宿(自身寄宿),就是自己创建个控制台应用程序,然后引用下服务的类库就行了,顺道说下配置文件吧,配置文件其实一个目的是为了简化代码,另一个目的是为了配置方便,代码的可扩展性更强了。这个大家都懂,配置文件可以随便的改,哈哈。
这个是吧配置文件放在代码里面的,我都觉得太复杂,以后基本上没用过。
static void Main(string[] args)
{
//在进行真正的开放时一般在配置文件里面进行配置添加终结点和服务行为的定义
using (ServiceHost host = new ServiceHost(typeof(CalculatorService)))
{
//指定绑定和总结点的地址
host.AddServiceEndpoint(typeof(ICalculator), new WSHttpBinding(), "http://127.0.0.1:3721/calculatorservice");
//数据的发布
if (host.Description.Behaviors.Find<ServiceMetadataBehavior>() == null)
{
//创建服务行为
ServiceMetadataBehavior behavior = new ServiceMetadataBehavior();
//是否发布元数据以便使用HTTPS/GET请求进行检索
behavior.HttpGetEnabled = true;
//使用HTTPS/GET请求的元数据发布的位置
behavior.HttpGetUrl = new Uri("http://127.0.0.1:3721/calculatorservice/metadata");
//添加到发布上
host.Description.Behaviors.Add(behavior);
}
host.Opened += delegate
{
Console.WriteLine("CalculatorService已经启动,按任意键终止服务!");
};
//通讯状态转换到已打开
host.Open();
Console.ReadLine();
}
二、这个也是自身寄宿,这个不写在代码里面的,而是自己创建个配置文件。
static void Main(string[] args)
{
using (ServiceHost host = new ServiceHost(typeof(CalculatorService)))
{
host.Opened += delegate
{
Console.WriteLine("CalculatorService已经启动,按任意键终止服务!");
};
//通讯状态转换到已打开
host.Open();
Console.ReadLine();
}
}
简单明了,下面是服务端的配置文件,其实就是创建的一个App.config,入门就复制就行了,后面再去了解每个的意思;
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="metadataBehavior">
<serviceMetadata httpGetEnabled="true" httpGetUrl="http://127.0.0.1:3721/calculatorservice/metadata" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="metadataBehavior" name="Service.CalculatorService">
<endpoint address="http://127.0.0.1:3721/calculatorservice"
binding="wsHttpBinding" bindingConfiguration="" contract="Service.Interface.ICalculator" />
</service>
</services>
</system.serviceModel>
</configuration>
三、寄宿IIS
由于自身就是小白,再加上用的win10的电脑,寄宿IIS一直有问题,前几天才搞定。win10吧这个4.7全勾上就行了,搞不懂为什么。网上大把的教程,我就不写了,我就说说注意事项,还有我遇到的问题。
后面就是介绍服务的启动,客户端如何配置和引用的。