以编程方式在.NET WCF服务中创建端点

时间:2011-11-16 23:24:09

标签: c# .net wcf web-services

我有一个旨在使用Web服务的类。现在,我已将其写入查询http://www.nanonull.com/TimeService/TimeService.asmx

该类将由使用VBScript的遗留应用程序使用,因此它将使用Namespace.ClassName约定进行实例化。

我在编写代码以使绑定和端点与我的类一起工作时遇到了麻烦,因为我将无法使用配置文件。我见过的示例讨论使用SvcUtil.exe但我不清楚如果Web服务是外部的,如何做到这一点。

有人能指出我正确的方向吗?这是我到目前为止,编译器崩溃在IMyService:

 var binding = new System.ServiceModel.BasicHttpBinding();
        var endpoint = new EndpointAddress("http://www.nanonull.com/TimeService/TimeService.asmx");

        var factory = new ChannelFactory<IMyService>(binding, endpoint);

        var channel = factory.CreateChannel(); 


        HelloWorld = channel.getCityTime("London");

1 个答案:

答案 0 :(得分:8)

Darjan是对的。 Web服务的建议解决方案有效。使用svcutil生成代理的命令行是

svcutil.exe /language:cs /out:generatedProxy.cs /config:app.config http://www.nanonull.com/TimeService/TimeService.asmx

您可以忽略app.config,但是将generatedProxy.cs添加到您的解决方案中。接下来,您应该使用TimeServiceSoapClient,看看:

using System;
using System.ServiceModel;

namespace ConsoleApplication
{
  class Program
  {
    static void Main(string[] args)
    {
      TimeServiceSoapClient client = 
        new TimeServiceSoapClient(
          new BasicHttpBinding(), 
          new EndpointAddress("http://www.nanonull.com/TimeService/TimeService.asmx"));

      Console.WriteLine(client.getCityTime("London"));
    }
  }
}

基本上就是这样!