我正在尝试以声明方式使用WCF 4路由将我的(REST)Web服务的一个分支重定向到备用服务器。我将WCF的System.ServiceModel.Routing.RoutingService
配置为将http://oldserver:81/FileService/
电话路由到http://newserver:82/FileService/
,但是当我尝试访问重定向的服务时,它只会抛出错误
Handler "HttpLogging" has a bad module "HttpLoggingModule" in its module list
我可以在浏览器中输入新服务的URL,但它们运行正常,但旧服务的URL(要重新路由)失败。
我已将以下路由配置添加到我的Web服务应用程序中:
<configuration>
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
<behaviors>
<serviceBehaviors>
<behavior name="routingConfig">
<!-- Specify the routing table to use. -->
<routing filterTableName="routingTable1" />
<serviceDebug includeExceptionDetailInFaults="true" />
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
<!-- WCF routing table -->
<routing>
<filters>
<filter name="FileFilter1" filterType="EndpointName" filterData="FileService"/>
</filters>
<filterTables>
<filterTable name="routingTable1">
<add filterName="FileFilter1" endpointName="FileService" />
</filterTable>
</filterTables>
</routing>
<client>
<!-- Destination endpoint defining the base URL where File messages will be routed. -->
<endpoint name="FileService"
address="http://newserver:82/FileService/"
binding="webHttpBinding"
contract="*" />
</client>
<services>
<!-- WCF routing service. -->
<service name="System.ServiceModel.Routing.RoutingService" behaviorConfiguration="routingConfig" >
<host>
<baseAddresses>
<!-- The service endpoint to be redirected. -->
<add baseAddress="http://oldserver:81/FileService" />
</baseAddresses>
</host>
<!-- Define the endpoints of the service to receive messages. -->
<endpoint name="reqReplyEndpoint" binding="webHttpBinding" contract="System.ServiceModel.Routing.IRequestReplyRouter" address="" />
</service>
</services>
应用程序中不再有FileService服务,除了路由服务应该公开的服务。
我试过了:
它没有让我的客户端调用重定向的服务,甚至没有任何迹象表明路由服务是可操作的,甚至根本没有配置。
如何使路由实际工作?如果不这样做,我将如何调试它以便确定要修复的内容?
答案 0 :(得分:1)
我看到的一般问题是您尝试使用路由服务路由REST呼叫,这是不受支持的。 MSDN参考:
https://msdn.microsoft.com/en-us/library/ee517423.aspx
路由服务当前不支持WCF REST的路由 服务。要路由REST调用,请考虑使用System.Web.Routing或 应用请求路由 (http://go.microsoft.com/fwlink/?LinkId=164589)。 块引用