天天看点

创建WCF服务

[1]创建控制台项目

[2]添加=>新建项,选择“WCF服务”,并命名文件名,即服务类名。如:“MyFirstService.cs”,VS工具将会创建两个文件:MyFirstService.cs和IMyFirstService.cs

MyFirstService.cs文件内容如下:

namespace MyWCF
{
    // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的类名“MyFirstService”。
    public class MyFirstService : IMyFirstService
    {
        public string GetName(int No)//自己添加的
        {
            return "hello world"+No.ToString();
        }
    }
}      

IMyFirstService.cs文件内容如下:

namespace MyWCF
{
    // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IMyFirstService”。
    [ServiceContract]
    public interface IMyFirstService
    {
        [OperationContract]
        string  GetName(int No);
    }
}      

在工程管理器下找到app.config文件,会看到比原来多出一些内容,如下:

<system.serviceModel>
        <behaviors>
            <serviceBehaviors>
                <behavior name="">
                    <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
                    <serviceDebug includeExceptionDetailInFaults="false" />
                </behavior>
            </serviceBehaviors>
        </behaviors>
        <services>
            <service name="MyWCF.MyFirstService"><!--这里是ABC-->
                <endpoint address="" binding="basicHttpBinding" contract="MyWCF.IMyFirstService">
                    <identity>
                        <dns value="localhost" />
                    </identity>
                </endpoint>
                <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
                <host>
                    <baseAddresses>
                        <add baseAddress="http://localhost:8733/theService/" /><!--这里可以修改-->
                    </baseAddresses>
                </host>
            </service>
        </services>
    </system.serviceModel>      

编译工程,以管理员运行生成的exe文件。

[3]调用WCF方法

(1)首先创建一个控制台程序

(2)然后右键项目菜单:添加=》服务引用,弹出服务引用窗口

(3)在服务引用地址中,输入WFC配置文件中的:http://localhost:8733/theService/,再点”转到“

(4)命名空间文本框中,输入服务名称,内容随意。如Scale3dcWCF

(5)在入口函数中,添加调用代码,如下:

namespace testWCF
{
    class Program
    {
        static void Main(string[] args)
        {//Scale3DCWCF即为引入时命名的服务名
            Scale3DCWCF.MyFirstServiceClient client = new Scale3DCWCF.MyFirstServiceClient();
            string  strName =  client.GetName(2190);
            Console.Write(strName);

            Console.ReadLine();
        }
    }
}      

继续阅读