【问题标题】:How to initialize wcf client with particular Url Address?如何使用特定的 Url 地址初始化 wcf 客户端?
【发布时间】:2011-07-07 15:27:30
【问题描述】:

我记得 ASMX 有一个简单的解决方案:

 MyAsmxServiceClient serviceClient = 
     new MyAsmxServiceClient("http://myServiceLocation/myService.asmx");

如何使用 WCF 实现相同的功能?

【问题讨论】:

    标签: c# .net wcf


    【解决方案1】:

    这通常在 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();
    }
    

    【讨论】:

    • 好吧,这看起来不错,我真正需要做的是:if(x) service = new Service("x") else service = new Service("y"), 所以是有没有办法为同一个合约定义 2 个端点并通过名称或其他方式检索它们?
    • @爱我的乍得,是的,你可以。我已更新我的答案以包含一个示例。
    • 谢谢!像魅力一样工作!
    【解决方案2】:

    在同一行中,绑定 = 您正在使用的绑定类型

    BasicHttpBinding binding = new BasicHttpBinding();
    EndpointAddress address = new EndpointAddress("http://localhost:8888/MyService");        
    MyServiceClient sv= new MyServiceClient(binding, address)
    

    【讨论】:

    • 如何初始化绑定对象?
    • 以上更新假设您使用的是 BasicHttpBinding。希望对您有所帮助。
    • 不,不幸的是没有工作,例外是客户端处于故障状态。
    • 参考这个,我在搜索更多关于这个时遇到的-stackoverflow.com/questions/1193124/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-13
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    • 1970-01-01
    相关资源
    最近更新 更多