3

我有带有 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>
4

2 回答 2

13

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

于 2012-05-31T18:18:59.247 回答
2

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

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

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

你可以按照这个很好的教程,我前几天刚做的......

希望能帮助到你!

于 2012-05-31T18:32:57.820 回答