【问题标题】:Regarding WCF endpoint address attribute关于 WCF 端点地址属性
【发布时间】:2012-12-20 23:01:25
【问题描述】:

作为 wcf 的新手,我经常坚持在配置文件中写入端点地址。有时我只是不明白我应该在服务将运行的主机端的端点中写什么地址。这是一个示例端点条目....请看一下。

<endpoint address="net.tcp://localhost/ServiceModelSamples/Service1.svc" 
          binding="netTcpBinding" 
          contract="ServiceReference1.IService1">
</endpoint>

<endpoint address="net.tcp://localhost/ServiceModelSamples/service"
          binding="netTcpBinding"
          contract="ServiceReference1.IService1" />

我有几个关于端点地址的问题 1)我什么时候应该这样写端点地址

net.tcp://localhost/ServiceModelSamples/Service1.svc

我猜当我们将在 IIS 中托管我们的服务时,我们需要像上面一样写入端点地址,我们需要在其中写入我们的 svc 文件名。 我说的对吗?

2) 看看下面的地址

address="net.tcp://localhost/ServiceModelSamples/Service1.svc" 

什么是ServiceModelSamples我需要提及吗?

3) 假设我使用 wcf 服务应用程序模板开发 wcf 服务并将该服务托管在 win 表单应用程序中,那么我们的端点地址将如下所示

 address="net.tcp://localhost/ServiceModelSamples/service"

我是否需要写 ServiceModelSamples 我们的项目名称文件夹,或者我们可以将其从 地址如address="net.tcp://localhost/service"

知道我是否需要写我们的项目文件夹名称对我来说非常重要 ServiceModelSamples

4) 当我们在 win 表单应用程序中托管 wcf 服务时,我是否需要指定带扩展名的 svc 文件名。

5) 专门指导我在 win form 应用中托管服务时需要写什么地址。

我上面所有的问题可能听起来很愚蠢,但我对地址很困惑 端点。我没有办法在这里提出问题。所以请看看我的5点并指导我。谢谢

【问题讨论】:

    标签: wcf


    【解决方案1】:

    我认为您的困惑来自 IIS 托管和自定义托管之间的差异。

    当您使用 IIS 托管服务时,该服务的行为方式如下:

    • 基地址会自动分配给服务,具体取决于服务在 IIS 中的托管位置。它使用与网站使用相同的地址映射
    • 服务层需要有 .svc 文件才能通过 IIS 公开服务实例。这些服务文件只是有助于在 IIS 上公开的映射文件。

    因此,要从客户端填写托管在 IIS 中的服务的地址,您需要:

    • 找出 IIS 分配的地址。
    • 使用您要指向的 Service.svc 文件名填写该地址。

    但是,当使用自定义托管(通过 ServiceHost)服务地址完全由服务配置文件控制时:

    • 服务可以通过 baseAddresses 设置为其所有端点配置一个基地址
    • 所有端点可以有完整地址或相对地址。如果使用相对地址,则生成的端点地址将是 baseAddress + 端点相对地址。

    在自定义托管时,您可以完全控制服务地址,因此您没有任何必须在 IIS 上遵循的限制。

    【讨论】:

    • 我关心的是如何确定我将在配置文件中为 tcp 绑定或双重绑定等写入什么地址。暂时忘记基地址。所以告诉我我怎么写绝对地址?我可以为 tcp 或双端点地址属性(如 net.tcp://localhost/S1/s2/s3/s4 等)提供或写入任何地址吗
    • 如果你是自定义托管,不在IIS中,你可以为每个端点写任何你想要的地址,只要你记得在服务器和客户端中设置,并且地址是有效的(它们是可解析的)
    • 没有写地址的规则。所以我可以写像 net.tcp://localhost/S1/s2/s3/s4 这样的地址吗?
    • 只要客户端和服务器都使用相同的是,它应该可以工作
    猜你喜欢
    • 1970-01-01
    • 2011-12-18
    • 1970-01-01
    • 2013-09-14
    • 1970-01-01
    • 2013-03-18
    • 1970-01-01
    • 2017-06-27
    • 2011-07-06
    相关资源
    最近更新 更多