写一个简单控制台启动的mcv服务
生活随笔
收集整理的這篇文章主要介紹了
写一个简单控制台启动的mcv服务
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.在項目工程里添加wcf服務,工程中會出現兩個文件IService.cs和Service.cs.
IService.cs中定義服務中的接口,接口必須加特性[OperationContract]才能在客戶端添加服務后,實例化對象中發現該函數。
namespace ConsoleApplication1 { [ServiceContract] public interface IMyService { [OperationContract] void DoWork();[OperationContract] void MyFunction(); } }?
Service.cs中實現接口
2.添加一個服務后,app.config配置服務信息。配置文件信息可以通過vs 提供的wcf服務配置編輯器來生成,具體可以在網上查到。添加service和contract幾個關鍵節點。?
<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> <system.serviceModel> <behaviors> <serviceBehaviors> <behavior name=""><!--在部署前將以下值設置為 false 避免泄漏元數據信息--><!- --這個信息在用戶添加服務時使用,不然客戶端無法通過添加服務引用找到服務 --> <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" /> <!-- 要接收故障異常詳細信息以進行調試,請將以下值設置為 true。在部署前設置為 false 以避免泄漏異常信息 --><serviceDebug includeExceptionDetailInFaults="false" /></behavior> </serviceBehaviors> </behaviors> <services> <service name="ConsoleApplication1.MyService"> <endpoint address="" binding="basicHttpBinding" contract="ConsoleApplication1.IMyService"> <identity> <dns value="localhost" /> </identity> </endpoint> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> <host> <baseAddresses><!-用戶客戶端添加服務引用的地址- --> <add baseAddress="http://192.168.1.109:8733//MyService/" /> </baseAddresses> </host> </service> </services> </system.serviceModel> </configuration>
3.啟動服務。
在main中添加如下代碼
ServiceHost host = new ServiceHost(typeof(MyService)); //把WCF的service宿主在這里 host.Open(); Console.WriteLine("服務已經啟動"); Console.Read();這樣這個服務就已經啟動了。
3-1.不編寫配置文件也可以啟動服務,需要在代碼里對配置信息進行確定。
using (ServiceHost host = new ServiceHost(typeof(MyWcfService.Service))){host.AddServiceEndpoint(typeof(MyWcfService.IService), new WSHttpBinding(), "http://localhost:9999/Service.svc");if (host.Description.Behaviors.Find<ServiceMetadataBehavior>() == null){ServiceMetadataBehavior behavior = new ServiceMetadataBehavior();behavior.HttpGetEnabled = true;behavior.HttpGetUrl = new Uri("http://localhost:9999/Service1/hi");host.Description.Behaviors.Add(behavior);}host.Opened += delegate{Console.WriteLine("服務已經啟動,按任意鍵終止服務!");};host.Open();Console.Read();這樣也可以啟動服務。
?
4.引用服務
在任意工程中添加服務引用,在地址欄中添加http://192.168.1.109:8733//MyService/,就能找到該服務進行添加了。
5.使用服務
在引用了服務的工程代碼中加入如下語句。
?
MyServiceReference.MyServiceClient mc = new MyServiceReference.MyServiceClient();?
就可用mc來調用服務中的函數了。
轉載于:https://www.cnblogs.com/lxdonge/p/4133566.html
總結
以上是生活随笔為你收集整理的写一个简单控制台启动的mcv服务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux使用小米随身wifi热点,【L
- 下一篇: 9款最新炫酷HTML5/CSS3应用推荐