从REST WCF服务中删除.svc,但仍启用“.wsdl”和“/help”
前面的SO问题/答案都没有让我找到一个完整的REST/WCF解决方案,该解决方案从服务的各个方面删除了SVC扩展 具体来说,我指的是servicename/help和servicename/wsdl。。。但我知道这是可能的。能够从/help链接中删除WCF扩展的用户。此外,他还使直接使用扩展名调用.svc变得不可能。WSDL似乎不存在,尽管我更愿意保留它 如何使我的WCF REST应用程序更像那个链接 这里是IIS URL重写,让我有一部分的方式。这看起来有点胡闹,因为如果我没有两次重写中的第一次,那么web服务就会随机中断从REST WCF服务中删除.svc,但仍启用“.wsdl”和“/help”,wcf,web-services,iis,rest,url-rewriting,Wcf,Web Services,Iis,Rest,Url Rewriting,前面的SO问题/答案都没有让我找到一个完整的REST/WCF解决方案,该解决方案从服务的各个方面删除了SVC扩展 具体来说,我指的是servicename/help和servicename/wsdl。。。但我知道这是可能的。能够从/help链接中删除WCF扩展的用户。此外,他还使直接使用扩展名调用.svc变得不可能。WSDL似乎不存在,尽管我更愿意保留它 如何使我的WCF REST应用程序更像那个链接 这里是IIS URL重写,让我有一部分的方式。这看起来有点胡闹,因为如果我没有两次重写中的第一
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<rewrite>
<rules>
<rule name="test1.svc" stopProcessing="true" >
<match url="^test1.svc(.*)$"/>
</rule>
<rule name="test1" stopProcessing="true" >
<match url="^test1(.*)$"/>
<action type="Rewrite" url="/test1.svc{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
根据您发布的链接,我假设您正在使用.NETFramework4。如果是这种情况,则不需要使用.svc文件,因为它现在与集成。因此,可以使用新类将服务URL添加到ASP.NET。有关更多信息,请参阅以下内容 WCF 4还允许您使用无文件激活和Windows激活服务提供别名寻址。是
<configuration>
<system.serviceModel>
<serviceHostingEnvironment>
<serviceActivations>
<add relativeAddress="/GreetingService" service="GreetingService"/>
</serviceActivations>
</serviceHostingEnvironment>
</system.serviceModel>
</configuration>
@斯蒂芬·彭定康-我注意到你是一个非常好的使用者。我会看看这篇文章是否能让你读到这篇文章……了解如何实现这一方法。不起作用。此外,未向IIS注册的任何内容都会出现此错误:扩展名“.t”未向WCF/WF处理程序注册。请从配置文件中删除“system.serviceModel/serviceHostingEnvironment/serviceActivations”中的相对地址“~/t1.t”,或向WCF/WF处理程序注册相应的扩展名“.t”。请参阅「http://msdn.microsoft.com/en-us/library/bb515343.aspx'了解如何在IIS中注册扩展。您可能需要在.config中处理所有模块hack,和/或正确设置IIS中静态内容与动态内容的模块/处理程序。检查静态内容处理程序是否设置为期望文件夹或文件存在。