假设我目前拥有符合此合同的(实时)WCF Web服务
namespace MyWeb
{
[ServiceContract]
public interface IMyWebService
{
[OperationContract]
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "VersionCheck/")]
bool VersionCheck(string version, string device);
}
}
目前按预期工作; Web客户端使用AJAX将参数(作为JSON字符串)POST到服务,然后Web服务返回JSON响应。
但是,我需要打破即将推出的客户端版本的API兼容性,我不能保证所有用户都会立即使用客户端的更新版本。
我想做的是以下内容:
MyWebService
重命名为指示版本的内容
它的目的客户,例如MyWebService_1_0
。MyWebService
可作为现有服务的替代品version
标头,以便新MyWebService
可以确定要路由的适当的实际服务(在这种情况下,MyWebService_1_0
)
到。从理论上讲,这似乎很简单。我遇到的问题是,每当我尝试创建上述服务时,对www.mywebsite.com/MyWebService.svc/VersionCheck/
的Ajax调用都会完全失败(请记住,在这种情况下,MyWebService
是一个路由服务,不一样我们开始的服务)。
我想我的问题是,在这种情况下,我该怎样做才能让路由器作为替代品工作?或者,有没有更好的方法来处理这个?目前无法进行客户端更新。