首页 > 其他分享 >创建简单的WCF服务

创建简单的WCF服务

时间:2023-12-01 20:22:24浏览次数:35  
标签:Console Service 创建 WCF MyService 简单 MyServiceHost

创建Service项目

在Visual Studio中新建项目,Class Library (.NET Framework),叫MyServie。

添加WCF Service

  1. 在创建好的项目中添加WCF Service,命名为MyService此时会有一个System,ServiceModel出现在引用中。
  2. 实现MyService类中的DoWork方法
namespace MyService
{
    public class MyService : IMyService
    {
        public void DoWork()
        {
            Console.WriteLine("Hello World!");
        }
    }
}

创建ServiceHost项目

  1. 新建一个Console Application (.NET Framework),叫MyServiceHost。
  2. 将刚刚创建的MyService添加到MyServiceHost的引用中。
  3. 在App.Config中添加下面的section
	<system.serviceModel>
		<bindings />
		<client />
		<services>
			<service name="MyService.MyService" behaviorConfiguration="mexBehaviour">
				<endpoint address="MyService" binding="basicHttpBinding" contract="MyService.IMyService" />
				<endpoint address="MyService" binding="netTcpBinding" contract="MyService.IMyService" />
				<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
				<host>
					<baseAddresses>
						<add baseAddress="http://localhost:8080/"/>
						<add baseAddress="net.tcp://localhost:8090/"/>
					</baseAddresses>
				</host>
			</service>
		</services>
		<behaviors>
			<serviceBehaviors>
				<behavior name="mexBehaviour">
					<serviceMetadata httpGetEnabled="true"/>
				</behavior>
			</serviceBehaviors>
		</behaviors>
	</system.serviceModel>
  1. 在Main方法里面添加以下代码
using (ServiceHost host = new ServiceHost(typeof(MyService.MyService)))
{
    host.Open();
    Console.WriteLine("Host started @ " + DateTime.Now.ToString());
    Console.ReadLine();
}

此时直接启动会报错,用管理员权限打开VS或者编译后的exe文件可以解决。

如果不想每次都用管理员权限打开,就用管理员权限在CMD执行下面的命令。

netsh http add urlacl url=http://+:8080/ user =domain\user

连接WCF Service Host

  1. 创建一个控制台应用程序MyServiceClient
  2. 启动MyServiceHost
  3. 在Reference里面Add Service Reference,输入http://localhost:8080/
  4. 在Main方法里面输入下面的代码
MyService.MyServiceClient client = new MyService.MyServiceClient("BasicHttpBinding_IMyService");
client.DoWork();
  1. 运行,会发现MyServiceHost控制台里出现了Hello World!

标签:Console,Service,创建,WCF,MyService,简单,MyServiceHost
From: https://www.cnblogs.com/mofayi/p/create-wcf-service.html

相关文章

  • 记录--原来前端部署这么简单
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前言有个朋友说前端技能大家大部分都会,就是部署项目这一块经验都比较稀缺,一直很想学一下。所以在这里写一篇简单的从零开始部署前端项目的全过程,感兴趣的掘友们或者想自己搭建项目部署的可以看一下这篇。环境搭......
  • 阿里云IPV6 创建虚拟机的过程
    阿里云IPV6创建虚拟机的过程背景IPV6已经越来越广泛的应用.想在外网开通一下IPV6,发现还有一些坑.这里总结一下.备忘.开通方式1.登录阿里云的控制台,打开云服务器ECS的管理界面打开想要进行IPV6设置的虚拟机.进入实例详情界面点击配置信息里面的->虚拟......
  • ESP32简单实现新版HC-SR04超声波模块(MicroPython+Thonny)
    一、新版HC-SR04简介新版HC-SR04,性能远超老版HC-SR04,US-015;在测距精度高于老版HC-SR04和US-015的情况下,测距范围更远,可达6米,远超一般超声波测距模块。采用CS-100A超声波测距SOC芯片,高性能,工业级,宽电压、低价格,成本击穿底价,只有普通超声波测距模块一半的价格,而性能远超普通超声波......
  • mac 在/home目录下面创建文件夹
    1、编译/etc/auto_master文件,注释掉或者移除以/home开头的那一行,保存。sudovim/etc/auto_master注释掉/home哪一行,如下所示:1#Automountermastermap2+auto_master#Usedirectoryservice3/net-hosts-nobrowse,hide......
  • Visual Studio2022创建Windows服务程序
    一、打开工具 二、创建新项目     创建后项目结构 三、重命名服务   四、添加安装程序     五、编码服务逻辑  usingSystem.ServiceProcess;usingSystem.Timers;usingSystem.Windows.Forms;namespaceMyAlertWindows......
  • 第10次-创建一个在线网站
    这个作业属于哪个课程https://edu.cnblogs.com/campus/uzz/cs3这个作业要求在哪里https://edu.cnblogs.com/campus/uzz/cs3/homework/13118这个作业的目标1.在线公开访问2.使用gitee或者github3.创建一个博客、简历4.也可以使用其他平台http://47.98.112.83/......
  • QT-对于MVC中典型QTreeView简单使用参考记录
    //创建以ui文件中对应View为载体的model<-此处使用QStandardItemModel(比较常用)QStandardItemModel*model=newQStandardItemModel(ui->treeView);model->setHorizontalHeaderLabels(QStringList()<<QStringLiteral("国家")<<QStringLiteral("省份"......
  • react 使用 antd 创建全局loading
    代码如下:importReactDOMfrom'react-dom';import{Spin}from'antd';exportconstshowGlobalLoading=()=>{constdom=document.createElement('div')dom.id='globalLoading'dom.style='widt......
  • 第10次-创建一个在线网站
    这个作业属于哪个课程https://edu.cnblogs.com/campus/uzz/cs3这个作业要求在哪里https://edu.cnblogs.com/campus/uzz/cs3/homework/13118这个作业的目标第10次-创建一个在线网站网站链接:http://43.139.57.121......
  • 在redis中,如何在创建key的同时,设置key的过期时间
    1、通过下面的创建key,同时设置过期时间SETkeyvalueEXseconds 示例:setteskey01123ex60  设置key的过期时间是60s,这样在创建的时候,就开始倒计时了。 通过工具看,TTL,会定期的刷新,到0之后,这个key就会被删除了。 60s后,key不存在  如果一个key的TTL......