【问题标题】:How do you add a WCF service reference with a fixed port?如何添加具有固定端口的 WCF 服务引用?
【发布时间】:2023-03-27 05:32:01
【问题描述】:

我在app.config 中有一个 WCF 服务被一个 Windows 服务冲洗

  <services>
    <service behaviorConfiguration="serviceBehavior" name="AgileServer.AgileService">
      <endpoint address="AgileService" binding="basicHttpBinding" name="basicHttp" contract="AgileServer.AgileService" />
      <endpoint binding="mexHttpBinding" name="mex" contract="IMetadataExchange" />
      <host>
        <baseAddresses>
          <add baseAddress="http://localhost:24453/AgileService" />
        </baseAddresses>
      </host>
    </service>

当我尝试向我的服务添加服务引用时(通过单击“添加服务引用”提示中的“发现”),URI 显示为 http://localhost:33908/AgileService.svc 我希望我的服务使用 http://localhost:24453/AgileService 作为 URI .我怎样才能做到这一点?

【问题讨论】:

    标签: c# .net wcf .net-4.0 service-reference


    【解决方案1】:

    你需要

    • 在您的 Windows 服务中启动并运行 WCF 服务
    • 不要点击Discover,而是输入/粘贴您要连接的 URL - 使用基地址 (http://localhost:24453/AgileService) 或 MEX 端点的地址 (http://localhost:24453/AgileService/mex)

    这样做将连接到定义的 URL,并且服务元数据将被检索并用于为服务创建客户端代理。

    顺便说一句:您的实际服务 URL 将是:

    http://localhost:24453/AgileService/AgileService
    

    由您的基地址 (http://localhost:24453/AgileService)加上端点上的相对地址 (AgileService) 组成。

    【讨论】:

    • 很好的答案,谢谢。那么,使用 Discover 是否合适?它创建的服务引用是否总是只能用于本地测试?
    • @Eric:我自己从不使用“发现”——不知道它对你有什么帮助......服务参考创建是一个成熟的、生产就绪的客户端——它是绝对不仅仅是用于测试!它创建客户端配置 - 但您当然可以调整(使用不同的 URL)用于生产 - 但创建的客户端代码是 真实的 - 不仅仅是用于测试!
    猜你喜欢
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-14
    • 2015-04-15
    • 2011-03-20
    • 2011-03-12
    • 2011-03-29
    相关资源
    最近更新 更多