美好的一天
我在C#中创建了一个ASP.NET Web服务应用程序,将其发布,并在IIS上托管它。然后我创建了一个客户端程序,它将调用Web服务的HelloWorld()方法。
客户端中的代码如下所示:
WebService.Service1SoapClient webProccessor = null;
EndpointAddress endPoint = new EndpointAddress("http://localhost/TestService/TestService.svc");
webProccessor = new WebService.Service1SoapClient(new BasicHttpBinding(), endPoint);
webProccessor.HelloWorld();
如何将“Service1SoapClient”更改为“TestServiceClient”?我假设这可以在Web服务中完成,但我不知道如何。
换句话说,我希望客户端中的代码看起来如下:
WebService.TestServiceClient webProccessor = null;
EndpointAddress endPoint = new EndpointAddress("http://localhost/TestService/TestService.svc");
webProccessor = new WebService.TestServiceClient(new BasicHttpBinding(), endPoint);
webProccessor.HelloWorld();
答案 0 :(得分:0)
要将默认名称更改为其他名称,您必须从服务中更改名称:
[WebService(Name = "TestService",Namespace = "yourNamespace")]
答案 1 :(得分:0)
我是如何解决的:
创建一个名为'TestServiceClient'的类,它继承ClientBase和接口:
公共类TestServiceClient:System.ServiceModel.ClientBase <ITestInterface
&gt;,ITestInterface
在该类中创建方法:
public TestServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :
base(binding, remoteAddress)
{
}
和
public string HelloWorld()
{
return base.Channel.HelloWorld();
}
然后我可以像问题中描述的那样调用服务:
webProccessor = new WebService.TestServiceClient(new BasicHttpBinding(), endPoint);