C# 从WCF REST函数重定向到另一个URL,而不返回HTTP 302

C# 从WCF REST函数重定向到另一个URL,而不返回HTTP 302,c#,wcf,rest,C#,Wcf,Rest,我有一个获取GET请求的REST服务,我希望它能够重定向到三个url中的一个,而不必发送HTTP302错误和新url [OperationContract(Name = "MyService")] [WebGet(ResponseFormat = WebMessageFormat.Xml, UriTemplate = "/myservice/{option}")] public System.IO.Stream MyService(String option) 这就是我

我有一个获取GET请求的REST服务,我希望它能够重定向到三个url中的一个,而不必发送
HTTP302
错误和新url

    [OperationContract(Name = "MyService")]
    [WebGet(ResponseFormat = WebMessageFormat.Xml, UriTemplate = "/myservice/{option}")]
    public System.IO.Stream MyService(String option)
这就是我定义它的方式,但是当我查看
WebOperationContext.Current.OutgoingResponse
时,我没有重定向的方法

有没有什么方法可以自动做到这一点?我希望这样做的原因是这个Web服务可能会被程序调用,在程序上不必捕获302错误,然后手动执行重定向会更简单

正确的方法似乎是遵循以下步骤:

这样做:

WebOperationContext.Current.OutgoingResponse.StatusCode = System.Net.HttpStatusCode.Redirect;
WebOperationContext.Current.OutgoingResponse.Location = "/someOtherPage.aspx";
return null; 

我只是希望找到另一个解决方案。

重定向始终是客户端的功能。服务器只是通知客户端资源在别处。除了将此重定向完全隐藏到与当前操作不同的服务调用中之外,没有什么类似于服务器端重定向


顺便说一句,REST是关于统一接口的,重定向(3xx)是这个接口的一部分,所以如果您创建REST服务,并且您想要这样的功能,您应该以普通方式使用它。REST客户端负责正确处理统一接口。

重定向始终是客户端功能。服务器只是通知客户端资源在别处。除了将此重定向完全隐藏到与当前操作不同的服务调用中之外,没有什么类似于服务器端重定向


顺便说一句,REST是关于统一接口的,重定向(3xx)是这个接口的一部分,所以如果您创建REST服务,并且您想要这样的功能,您应该以普通方式使用它。REST客户端负责正确处理统一接口。

不幸的是,你是正确的,我希望隐藏重定向,但我已经添加了重定向代码,只是希望找到更好的(对我来说)解决方案。谢谢。不幸的是你是对的,我希望隐藏重定向,但我已经添加了重定向代码,只是希望找到更好的(对我来说)解决方案。非常感谢。