WCF中,通过C#代码或App.config配置文件创建ServiceHost类

C#

//创建宿主的基地址
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();
    }
}
时间: 2024-10-22 02:23:06

WCF中,通过C#代码或App.config配置文件创建ServiceHost类的相关文章

app.config 配置多项 配置集合 自定义配置(3)

再说说利用app.config配置多个自定义的方法.先看这个例子:美国家庭Simpson的家里有父亲母亲和三个儿女,而中国的老王只有独生子女.结构如下: <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <sectionGroup type="Family.SectionGroups,Family" name=

MVC.Net:读取Web.config/App.config配置

需要读取Web.config/App.config的配置很简单,首先我们需要将配置写入到<appSettings>中,例如: <appSettings> <add key="thumbSize_weight" value="300"/> <add key="thumbSize_height" value="300"/> </appSettings> 读取配置语句(需要

app.config 配置多项 配置集合 自定义配置

C#程序的配置文件,使用的最多的是appSettings 下的<add key="Interval" value="30"/>,这种配置单项的很方便,但是配置集合就不方便了(当然你可以用逗号分隔,key=key1,key2,key3……但是你还是不知道有多少个集合).现在给出解决方案. 需求:程序超级管理员采用这种设置方式,在app.config中配置的方式,可以配置多个.登陆成功后,读取config,看我是不是超级管理员.(当然,这个需求是很扯淡的,因

App.config“配置系统未能初始化” 异常解决 C#

System.Configuration.ConfigurationManager.AppSettings["user"]; 时出现“配置系统未能初始化” 错误 解决办法: 如果配置文件中包含 configSections 元素,则 configSections 元素必须是 configuration 元素的第一个子元素.",将appSettings放到configSections 后,则正常. 是调用log4net的问题,把App.config顺序搞乱了. <?xml

app.config 配置多项 配置集合 自定义配置(4) 自动增加配置项到配置文件

配置文件如下图(最后的图片). 自动写入configSections和configSections的实例 1.自动写入configSections Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); LasteventSettingSection last = new LasteventSettingSection(); config.Sections.Add

Web.config和App.config配置连接字符串

读取配置文件,获取连接字符串 <!-- 第一种 --> <connectionStrings> <add name="connString" connectionString="server=.;uid=sa; pwd=123456; database=SchoolDB;"/> </connectionStrings> <!-- string connString = System.Configuration.C

【引用】C#读写app.config中的数据

读语句:          String str = ConfigurationManager.AppSettings["DemoKey"]; 写语句: Configuration cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);           cfa.AppSettings.Settings["DemoKey"].Value = "DemoVa

WCF中自定义消息编码器:压缩编码器的使用

原文:WCF中自定义消息编码器:压缩编码器的使用 通过抓包知道WCF在提交.返回数据的时候大多使用XML进行数据交互,如果返回DataTable那么这些数据将变得很大,通过查询找到一个对数据压缩的方法: http://msdn.microsoft.com/zh-cn/library/ms751458(v=vs.110).aspx 新增项目GZipEncoder,GzipEncoder中增加三个文件 : GZipMessageEncoderFactory.cs using System; usin

App.Config详解

App.Config详解 应用程序配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的.它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序.配置文件的根节点是configuration.我们经常访问的是appSettings,它是由.Net预定义配置节.我们经常使用的配置文件的架构是象下面的形式.先大概有个印象,通过后面的实例会有一个比较清楚的认识.下面的“配置节”可以理解为进行配置一个XML的节点. 1.  向项目添加 app.config 文件: 右击