【问题标题】:how to specify endpoint address for WCF service hosted on IIS?如何为 IIS 上托管的 WCF 服务指定端点地址?
【发布时间】:2012-06-06 00:40:31
【问题描述】:

我有一个带有 basicHttpBindings 的简单 wcf 服务,并希望将它托管在 IIS 上。

但是当我指定 <endpoint address="/myAddress" binding="basicHttpBinding" contract="Wcf.Contracts.IPublicService"/> myAddress 被忽略。换句话说,我希望它像 localhost:1111/myaddress/PublicService.svc 这样创建我的服务端点,但它只是通过结合 localhost 和 PublicService.svc - localhost:1111/publicservice.svc 来创建端点。

为什么我需要? 我在项目中托管了一些其他服务,并希望在 localhost 之后使用不同的 url 创建它们中的每一个。(我不想将它们移动到不同的文件夹)。

我用谷歌搜索发现在 IIS 上托管时主机基地址被忽略,端点地址也是如此吗?

提前致谢

<service name="Wcf.Services.AdminService">
    <endpoint address="/address" binding ="basicHttpBinding" contract="Wcf.Contracts.IAdminService"/>
    <endpoint address="mex" binding ="mexHttpBinding" contract="IMetadataExchange"/>
  </service>
  <service name="Wcf.Services.PublicService">
    <endpoint address="/address1" binding="basicHttpBinding" contract="Wcf.Contracts.IPublicService"/>
    <endpoint address="mex" binding="basicHttpBinding" contract="IMetadataExchange"/>
  </service>

【问题讨论】:

  • 如果您将服务放在名为“myAddress”的文件夹中,则路径将从 /PublicService.svc -> /myAddress/PublicService.svc 更改。如果您想将它们全部存储在一个地方但不同的路径,您应该考虑添加 ServiceRoutes。
  • 但是如果不能“适当地”使用端点地址,为什么我们需要端点地址呢?它们仅适用于 Windows 服务中的自托管服务吗?

标签: c# .net wcf


【解决方案1】:

我认为您的问题可能类似于 Service.svc 文件...

打开它并像这样修改其中的单行:

<%@ ServiceHost Language="C#" Debug="true" Service="Wcf.Services.PublicService" %>

大家可以关注this不错的教程,我前几天刚做的...

希望对你有帮助!

【讨论】:

    【解决方案2】:

    假设您的服务的基地址是http://localhost:1111/PublicService.svc,指定address="/myAddress" 属性将导致该端点的地址变为http://localhost:1111/PublicService.svc/myAddress。端点的相对路径在服务地址之后

    【讨论】:

      猜你喜欢
      • 2011-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-13
      • 1970-01-01
      相关资源
      最近更新 更多