IIS上的WCF服务.如何摆脱URL路径中的"Service.svc"组件?

Fer*_*osa 1 .net c# iis wcf wcf-binding

我在IIS上托管了WCF服务.出于商业原因,我不能发布此实例的公共URL,但我相信你会得到我的意思:

问题是,为了到达我的端点,似乎我已经包含Service.svc了路径段的一部分,即,我必须使用这样的URL:

http://<domain>/<app-name>/Service.svc/<relative-path>

我怎么能避免这个?我的意思是,我想通过以下方式访问我的服务:

http://<domain>/<app-name>/<relative-path>

当我在开发过程中自我托管服务时,我完全能够做到这一点.


最后,但这不是那么超然,浏览到http://<domain>/<AppName>/Service.svcURL会显示标准服务信息页面:

有没有办法可以防止这种情况发生?

在此输入图像描述

car*_*ira 5

第一部分:没有URL的"service.svc"部分,可以使用ASP.NET路由功能,而ServiceRoute类 - 路由的前缀将是空字符串.http://blogs.msdn.com/b/endpoint/archive/2010/01/25/using-routes-to-compose-wcf-webhttp-services.aspx上的帖子展示了如何做到这一点.

第二部分:为防止显示"帮助"页面,您可以通过配置(或使用自定义服务主机工厂的代码)禁用它.以下是通过配置完成的方法:

<serviceBehaviors>
    <behavior>
        <serviceDebug httpHelpPageEnabled="false" httpsHelpPageEnabled="false"/>
    </behavior>
</serviceBehaviors>
Run Code Online (Sandbox Code Playgroud)

该行为不具有"name"属性,这意味着它将被用作服务的默认行为.