加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

将wcf 以webservice的方式调用

发布时间:2020-12-17 02:33:22 所属栏目:安全 来源:网络整理
导读:问题:a公司使用wcf 发布服务(.net Framework 3.0 or 3.5),b公司需要使用a公司发布的服务 ,但b公司目前阶段只使用.net Framework2.0(.net Framework 2.0不支持wcf),如果要调用a公司wcf 服务,那怎么办呢? 一、先上wcf 代码(这里懒得写了,借用micro

问题:a公司使用wcf 发布服务(.net Framework 3.0 or 3.5),b公司需要使用a公司发布的服务 ,但b公司目前阶段只使用.net Framework2.0(.net Framework 2.0不支持wcf),如果要调用a公司wcf 服务,那怎么办呢?

一、先上wcf 代码(这里懒得写了,借用microsoft公司发布的wcf? samples):


namespace?Microsoft.ServiceModel.Samples

{

????
//?NOTE:?If?you?change?the?interface?name?"IService1"?here,?you?must?also?update?the?reference?to?"IService1"?in?Web.config.

????[ServiceContract,?XmlSerializerFormat]

????
public?interface?ICalculator

????
{

????????[OperationContract]

????????
double?Add(double?n1,?double?n2);

????????[OperationContract]

????????
double?Subtract(double?n1,?double?n2);

????????[OperationContract]

????????
double?Multiply(double?n1,?double?n2);

????????[OperationContract]

????????
double?Divide(double?n1,?double?n2);

????}


????
public?class?CalculatorService?:?ICalculator

????????
{

????????????
public?double?Add(double?n1,?double?n2)

????????????
{

????????????????
return?n1?+?n2;

????????????}


????????????
public?double?Subtract(double?n1,?double?n2)

????????????
{

????????????????
return?n1?-?n2;

????????????}


????????????
public?double?Multiply(double?n1,?double?n2)

????????????
{

????????????????
return?n1?*?n2;

????????????}


????????????
public?double?Divide(double?n1,?double?n2)

????????????
{

????????????????
return?n1?/?n2;

????????????}

????????}

}

?

配置文件:


<?xml?version="1.0"?encoding="utf-8"??>

<configuration>

??
<system.serviceModel>

????
<services>

??????
<service

??????????name
="Microsoft.ServiceModel.Samples.CalculatorService"

??????????behaviorConfiguration
="CalculatorServiceBehavior">

????????
<endpoint?address=""

??????????????????binding
="basicHttpBinding"

??????????????????contract
="Microsoft.ServiceModel.Samples.ICalculator"?/>

??????
</service>

????
</services>

????
<behaviors>

??????
<serviceBehaviors>

????????
<behavior?name="CalculatorServiceBehavior">

??????????
<serviceMetadata?httpGetEnabled="True"/>

??????????
<serviceDebug?includeExceptionDetailInFaults="False"?/>

????????
</behavior>

??????
</serviceBehaviors>

????
</behaviors>

??
</system.serviceModel>

</configuration>

?

运行,记录服务地址。

二、使用wsdl工具将wcf service生成asp.net webservice方式。

start --->运行--->cmd --->cd C:/Program Files/Microsoft SDKs/Windows/v6.0A/bin? 回车。

输入wsdl 服务地址。例(wsdl http://localhost:8571/Service1.svc )便生成相应的类似asp.net webservice代理类的文件。文件地址亦在上面bin中。

新建Console application (net Framework 2.0),添加刚刚生成的代理类。调用:

调用代码:


?class?Client

????
{

????????
static?void?Main()

????????
{

????????????
//?Create?a?client?to?the?CalculatorService

????????????using?(CalculatorService?client?=?new?CalculatorService())

????????????
{

????????????????
//?Call?the?Add?service?operation.

????????????????double?value1?=?100.00D;

????????????????
double?value2?=?15.99D;

????????????????
double?result?=?client.Add(value1,?value2);

????????????????Console.WriteLine(
"Add({0},{1})?=?{2}",?value1,?value2,?result);


????????????????
//?Call?the?Subtract?service?operation.

????????????????value1?=?145.00D;

????????????????value2?
=?76.54D;

????????????????result?
=?client.Subtract(value1,?value2);

????????????????Console.WriteLine(
"Subtract({0},?result);


????????????????
//?Call?the?Multiply?service?operation.

????????????????value1?=?9.00D;

????????????????value2?
=?81.25D;

????????????????result?
=?client.Multiply(value1,?value2);

????????????????Console.WriteLine(
"Multiply({0},?result);


????????????????
//?Call?the?Divide?service?operation.

????????????????value1?=?22.00D;

????????????????value2?
=?7.00D;

????????????????result?
=?client.Divide(value1,?value2);

????????????????Console.WriteLine(
"Divide({0},?result);


????????????}


????????????Console.WriteLine();

????????????Console.WriteLine(
"Press?<ENTER>?to?terminate?client.");

????????????Console.ReadLine();

????????}

????}

?

?配置文件:

?

?


<?xml?version="1.0"?encoding="utf-8"??>
<configuration>
??
<appSettings>
????
<add?key="CalculatorServiceAddress"?value="http://localhost:8571/Service1.svc"/>
??
</appSettings>
</configuration>

运行,即可成功调用。

项目完整代码。http://files.cnblogs.com/yiyisawa/wcfclienttowebservice.rar

(完)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读