• (转)将wcf 以webservice的方式调用


    问题: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 FilesMicrosoft SDKsWindowsv6.0Ain  回车。

    输入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},{1}) = {2}", value1, value2, result);

                    // Call the Multiply service operation.
                    value1 = 9.00D;
                    value2 = 81.25D;
                    result = client.Multiply(value1, value2);
                    Console.WriteLine("Multiply({0},{1}) = {2}", value1, value2, result);

                    // Call the Divide service operation.
                    value1 = 22.00D;
                    value2 = 7.00D;
                    result = client.Divide(value1, value2);
                    Console.WriteLine("Divide({0},{1}) = {2}", value1, value2, 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

    (完)

  • 相关阅读:
    append()、appendChild() 和 innerHTML 的区别
    JS实现动态添加和删除div
    linux下的find文件查找命令与grep文件内容查找命令
    Java 并发基础常见面试题总结
    深入理解HashMap
    JAVA 或与非运算符 与(&)、或(|)、异或(^)
    centos7.x下环境搭建(三)—nodejs安装
    centos7.x下环境搭建(二)—nginx安装
    centos7.x下环境搭建(一)--yum方式安装mysql5.7
    基于vuecli3构建一个快速开发h5 APP的模板
  • 原文地址:https://www.cnblogs.com/wanshutao/p/3904338.html
Copyright © 2020-2023  润新知