
快速阅读
如何用控制台启动一个wcf服务,已经wcf的配置和在类库中如何实现 。
wcf类库
用vs新建一个类库,引用system.ServiceModel

定义接口实现服务契约和操作契约
复制代码
1
2
3
4
5
6
7
8[ServiceContract] public interface IUser { [OperationContract] string GetUserInfo(); }
定义方法实现接口,定义服务行为
复制代码
1
2
3
4
5
6
7
8
9[ServiceBehavior] public class User:IUser { public string GetUserInfo() { return "username"; } }
控制台启动服务
新建一控制台应用 。引用之前新建的wcf类库,同时在app.config配置wcf服务
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36<system.serviceModel> <services> <service name="hcbServiceB.User"> <!--设置服务节点,服务的地址直接采用基地址,使用basicHttpBinding--> <endpoint address="" binding="basicHttpBinding" contract="hcbServiceB.IUser"> </endpoint> <!-- ~1~设置元数据交换节点@1@--> <!-- <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange">--> <!-- </endpoint>--> <host> <baseAddresses> <!--服务的基地址用来访问获取元数据--> <add baseAddress="http://localhost:8057/User"/> </baseAddresses> </host> </service> </services> <behaviors> <serviceBehaviors> <behavior name="HttpGetEnable"> <!--公开元数据,正是部署时候应该去掉防止元数据泄露--> <serviceMetadata httpGetEnabled="true"/> <serviceDebug includeExceptionDetailInFaults="true"/> </behavior> </serviceBehaviors> </behaviors> <bindings> <basicHttpBinding> <binding name="NoneSecurity"> <!--取消安全验证--> <security mode="None"> </security> </binding> </basicHttpBinding> </bindings> </system.serviceModel>
启动服务
定义serviceHost, 能过wcf类找到servicehost ,然后启动。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23static void Main(string[] args) { ServiceHost serivceHost = null; Type ServiceType = typeof(IUser); Type[] types = typeof(IUser).Assembly.GetTypes(); foreach (Type type in types) { if (type.IsInterface || type.IsEnum || type.IsAbstract || type.IsArray || !ServiceType.IsAssignableFrom(type)) continue; serivceHost = new ServiceHost(type); serivceHost.Opened += delegate { Console.WriteLine("[Info]{0} 启动完毕... ", type); }; serivceHost.Faulted += delegate { Console.WriteLine("[Warning]{0} 启动出错!", type); }; serivceHost.Open(); } Console.ReadLine(); }
测试结果


参考:
wcf元数据相关:https://www.cnblogs.com/xfrog/archive/2010/05/16/1736771.html
友情提示
我对我的文章负责,发现好多网上的文章 没有实践,都发出来的,让人走很多弯路,如果你在我的文章中遇到无法实现,或者无法走通的问题。可以直接在公众号《爱码农爱生活 》留言。必定会再次复查原因。让每一篇 文章的流程都能顺利实现。

最后
以上就是彩色黑裤最近收集整理的关于无法启动vs控制台_用控制台启动一个wcf服务的全部内容,更多相关无法启动vs控制台_用控制台启动一个wcf服务内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复