首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IIS上的WCF服务。如何摆脱URL路径中的"Service.svc“组件?

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

Stack Overflow用户
提问于 2012-07-11 20:04:14
回答 4查看 5.1K关注 0票数 1

我有一个托管在IIS.WCF上的WCF服务,因为业务原因,我不能发布这个实例的公共URL,但我相信您会得到我的意思:

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

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

如何避免这种情况?我的意思是,我想通过以下方式访问我的服务:

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

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

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

有什么办法可以阻止我这样做吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-07-11 20:32:15

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

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

代码语言:javascript
复制
<serviceBehaviors>
    <behavior>
        <serviceDebug httpHelpPageEnabled="false" httpsHelpPageEnabled="false"/>
    </behavior>
</serviceBehaviors>

该行为没有"name“属性,这意味着它将用作服务的默认行为。

票数 5
EN

Stack Overflow用户

发布于 2015-01-08 21:56:46

对像我这样的.net新闻的一步一步的说明:

  1. 打开Web.config文件并确保aspNetCompatibilityEnabled设置为true:
  2. 右键单击项目,单击Add->New Item。查找“全局应用程序类”。这将自动生成一个Global.asax文件.
  3. 打开Global.asax文件并确保Application_Start方法如下所示: 受保护的void Application_Start(对象发送方,EventArgs e) {RouteTable.Routes.Add(新ServiceRoute("",新ServiceHostFactory(),typeof(MyServiceImplementation);}

(用Service1.svc中调用的类更改MyServiceImplementation )

  1. 确保添加了以下引用: 使用System.ServiceModel.Activation;使用System.Web.Routing;

如果没有找到这些内容,并且您使用的时间早于.net 4.5,请确保使用的是完整安装而不是客户端安装。还要确保添加了这些包引用(右键单击-project,单击Add->Reference,找到包名并确保它被选中)。

  1. 重新启动IIS。应该隐藏Service1.svc (或任何您的文件)文件。
票数 3
EN

Stack Overflow用户

发布于 2012-07-11 20:19:10

您可以通过简单地不公开服务元数据来达到此目的--只需注释端点。

代码语言:javascript
复制
 <endpoint address="mex" binding="mexHttpBinding" name="IMetadataExchange_mexHttpBinding" contract="IMetadataExchange" />

根据url -我完全同意@Edmund Y-他提供了有用的链接

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11440562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档