zoukankan      html  css  js  c++  java
  • WCF中,通过C#代码或App.config配置文件创建ServiceHost类

    C#

    static void Main(string[] args)
    {
        //创建宿主的基地址
        Uri baseAddress = new Uri("http://localhost:8080/User");
    
        //创建宿主
        using (ServiceHost host = new ServiceHost(typeof(User), baseAddress))
        {
            host.AddServiceEndpoint(typeof(IUser), new WSHttpBinding(), "");
    
            //将HttpGetEnabled属性设置为true
            ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
            smb.HttpGetEnabled = true;
    
            //将行为添加到Behaviors中
            host.Description.Behaviors.Add(smb);
    
            //打开宿主
            host.Open();
            Console.WriteLine("WCF中的HTTP监听已启动....");
            Console.ReadLine();
            host.Close();
        }
    }

    App.config

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <system.serviceModel>
        <services>
          <service name="WCFLibrary.User">
            <host>
              <baseAddresses>
                <add baseAddress="http://localhost:8080/User"/>
              </baseAddresses>
            </host>
            <endpoint address="" binding="wsHttpBinding" contract="WCFLibrary.IUser"></endpoint>
          </service>
        </services>
        <behaviors>
          <serviceBehaviors>
            <behavior>
              <serviceMetadata httpGetEnabled="True"/>
              <serviceDebug includeExceptionDetailInFaults="False"/>
            </behavior>
          </serviceBehaviors>
        </behaviors>
      </system.serviceModel>
    </configuration>
    public partial class MainForm : Form
    {
        ServiceHost host;
    
        public MainForm()
        {
            InitializeComponent();
        }
    
        private void MainForm_Load(object sender, EventArgs e)
        {
            host = new ServiceHost(typeof(User));
            //打开宿主
            host.Open();
            this.label1.Text = "WCF中的HTTP监听已启动....";
        }
    
        private void MainForm_FormClosed(object sender, FormClosedEventArgs e)
        {
            host.Close();
        }
    }
  • 相关阅读:
    CodeForces 660D Number of Parallelograms
    【POJ 1082】 Calendar Game
    【POJ 2352】 Stars
    【POJ 2481】 Cows
    【POJ 1733】 Parity Game
    【NOI 2002】 银河英雄传说
    【NOI 2015】 程序自动分析
    【POJ 1704】 Georgia and Bob
    【HDU 2176】 取(m堆)石子游戏
    【SDOI 2016】 排列计数
  • 原文地址:https://www.cnblogs.com/gilbert/p/5725053.html
Copyright © 2011-2022 走看看