【发布时间】:2011-07-07 15:27:30
【问题描述】:
我记得 ASMX 有一个简单的解决方案:
MyAsmxServiceClient serviceClient =
new MyAsmxServiceClient("http://myServiceLocation/myService.asmx");
如何使用 WCF 实现相同的功能?
【问题讨论】:
我记得 ASMX 有一个简单的解决方案:
MyAsmxServiceClient serviceClient =
new MyAsmxServiceClient("http://myServiceLocation/myService.asmx");
如何使用 WCF 实现相同的功能?
【问题讨论】:
这通常在 app.config/web.config 中完成:
<system.serviceModel>
<client>
<endpoint
address="http://myServiceLocation/myService.asmx"
binding="basicHttpBinding"
contract="IMyServiceContract" />
</client>
</system.serviceModel>
或者你could also do it programatically,如果你愿意的话。
通常,当您使用svcutil.exe 生成客户端代理时,它还会创建一个示例output.config 文件,其中包含设置配置所需的所有内容。
更新:
您还可以为端点提供名称:
<system.serviceModel>
<client>
<endpoint
name="foo"
address="http://foo.com/myService.asmx"
binding="basicHttpBinding"
contract="IMyServiceContract" />
<endpoint
name="bar"
address="http://bar.com/myService.asmx"
binding="basicHttpBinding"
contract="IMyServiceContract" />
</client>
</system.serviceModel>
然后:
using (var client = new MyClientProxy("foo"))
{
var result = client.SomeMethod();
}
在同一行中,绑定 = 您正在使用的绑定类型
BasicHttpBinding binding = new BasicHttpBinding();
EndpointAddress address = new EndpointAddress("http://localhost:8888/MyService");
MyServiceClient sv= new MyServiceClient(binding, address)
【讨论】: