400 028 6601

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

WCF之Windows宿主(可安装成服务自动并启动)-创新互联

WCF之Windows宿主(可安装成服务自动并启动)

创新互联是一家专注于做网站、网站制作与策划设计,崇左网站建设哪家好?创新互联做网站,专注于网站建设10年,网设计领域的专业建站公司;建站业务涵盖:崇左等地区。崇左做网站价格咨询:13518219792

图1:图2: 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;

namespace WCFService.Models
{
    [DataContract]
    [Serializable]
public class Book
    {
        [DataMember]
public string Name { get; set; }
        [DataMember]
public double Price { get; set; }
    }
}
Book
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WCFService.Models;

namespace WCFService
{
public class BookService : IBookService
    {
        List list = new List();
public bool Add(string name, double price)
        {
            list.Add(new Book() { Name = name, Price = price });
return true;
        }

public List GetList()
        {
return list;
        }
    }
}
BookService
using System;
using System.ServiceModel;
namespace WCFService
{
    [ServiceContract]
public interface IBookService
    {
        [OperationContract]
bool Add(string name, double price);

        [OperationContract]
        System.Collections.Generic.List GetList();
    }
}
IBookService

 

图3:图4:

在Service1的设计界面中右击,选择“属性”,把其中的(Name)和ServiceName都改为BookServiceHost

编写代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceModel;
using System.ServiceProcess;
using System.Text;
using System.Threading.Tasks;
using WCFService;

namespace WindowsServiceHost
{
public partial class BookServiceHost : ServiceBase
    {
        ServiceHost _Host= new ServiceHost(typeof(BookService));
public BookServiceHost()
        {
            InitializeComponent();
        }

protected override void OnStart(string[] args)
        {
            _Host.Open();
        }

protected override void OnStop()
        {
            _Host.Close();
        }
    }
}
BookServiceHost

图5:

图6:图7: 图8:图9:图10:图11:图12:图13图14:图15:  图16:图17: 图18:图19:

Http(高级Web服务互操作性)

图20: 图21: 图22:

到目前为止我们配置好了两个http通道下的两个终结点,但这两个终结点的地址我们都使用的是相对地址,它们是相对于当前ServiceHost地址,所以我们还需要配置当前ServiceHost的地址.

图23:

这样我们两个终结点算是配置完成了。

“自运行WCF服务”与“在IIS布运行WCF服务”不一样的是,“自运行WCF服务"除了可以使用Http方式发布WCF服务,可以使用TCP、命名管道和微软消息队列进行信息传输。
下面我们再配置两个终结点,一个是使用TCP通信模式,另一个使用命名管道通信模式。

TCP:

图24:图25:

命名管道:

图26:图27:

到此为至,我们已经为该WCF服务建立了四个数据传输的终结点

下面我们为该ServiceHost程序配置“元数据终结点”,以向客户端发送服务元数据信息

图28:图29:

图30:

图31:图32:

图34:图33:

图35:图36:

图37:图38:

最终页面:到目前为止我们已经将Window服务宿主配置完毕,现在保存,关闭WCF配置工具,并打开App.Config


  
    
  
  
    
      
        
          
          
          
        
      
    
    
      
        
        
          
            
          
        
        
          
            
          
        
        
          
            
          
        
        
           
                        
                    
        
        
        
          
            
          
        
      
    
  
App.Config

 然后把下面代码删掉:



最终的App.config


  
    
  
  
    
      
        
          
          
          
        
      
    
    
      
        
        
        
        
        
        
        
        
        
        
        
          
            
          
        
      
    
  
App.Config

以上所写不仅适用与Windows宿主,同时适用IIS、控制台,因此后面关于IIS以及控制台宿主的发布不再重复以上配置

在Service1设计界面中右击,选择“添加安装程序”

图40:图41:

图42:图43(此图网络引用):

进入vs2012 开发命令提示,进入项目对应的盘符并进入exe所在文件夹,执行命令 :installutil WindowsServiceHost.exe

图44:

图45:

图46:

在VS2008命令窗口中输入:wcftestclienthttp://localhost:8081/Service 出现下面的界面

47:

Demo下载


网站标题:WCF之Windows宿主(可安装成服务自动并启动)-创新互联
文章网址:http://mbwzsj.com/article/dhppeg.html

其他资讯

让你的专属顾问为你服务