如何为IIS上托管的WCF服务指定端点地址?

时间:2012-05-31 18:14:18

标签: c# .net wcf

我使用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创建每个服务。(我不想将它们移动到不同的文件夹)。

我已经Google搜索并发现在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>

2 个答案:

答案 0 :(得分:12)

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

答案 1 :(得分:2)

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

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

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

你可以按照this好的教程,我几天前做过......

希望它有所帮助!