我是靠谱客的博主 彩色黑裤,这篇文章主要介绍无法启动vs控制台_用控制台启动一个wcf服务,现在分享给大家,希望可以做个参考。

e2164a3d212c3282cb60d8ecf4e86d76.png

快速阅读

如何用控制台启动一个wcf服务,已经wcf的配置和在类库中如何实现 。

wcf类库

用vs新建一个类库,引用system.ServiceModel

d1ab372bcd37f3ec01f3010cc1375b5f.png

定义接口实现服务契约和操作契约

复制代码
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
23
static 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(); }

测试结果

89bc3379631f11210e8f5982e0f625cd.png

7c90bd4e4ec934946da95c495acdbeeb.png

参考:

wcf元数据相关:https://www.cnblogs.com/xfrog/archive/2010/05/16/1736771.html

友情提示

我对我的文章负责,发现好多网上的文章 没有实践,都发出来的,让人走很多弯路,如果你在我的文章中遇到无法实现,或者无法走通的问题。可以直接在公众号《爱码农爱生活 》留言。必定会再次复查原因。让每一篇 文章的流程都能顺利实现。

d9b502930b91b28c23ebe40968bdb522.png

最后

以上就是彩色黑裤最近收集整理的关于无法启动vs控制台_用控制台启动一个wcf服务的全部内容,更多相关无法启动vs控制台_用控制台启动一个wcf服务内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部