如何防止WCF代理跟随重定向?

时间:2012-04-16 08:30:44

标签: wcf

我正在为我的WCF服务使用basicHttpBinding,并且有一个消息检查器,在某些情况下将响应代码设置为Redirect。我发现WCF代理(由svcutil生成)会自动尝试遵循重定向。我该如何防止这种情况发生?

谢谢, 普里亚

2 个答案:

答案 0 :(得分:0)

您可以从客户端应用程序引用服务合同程序集吗?如果是这样,您可以摆脱生成的服务引用,并在运行时使用ChannelFactory启动代理。

例如:

// Create service proxy on the fly
var factory = new ChannelFactory<IMyServiceContract>("NameOfMyClientEndpointInConfigFile");
var proxy = factory.CreateChannel();

// Create data contract
var requestDataContract = new MyRequestType();

// Call service operation.
MyResponseType responseDataContract = proxy.MyServiceOperation(requestDataContract);

在上面的示例中,IMyServiceContract是您的服务合同,MyRequestTypeMyResponseType是您的数据合同,您可以通过引用服务也引用的程序集来使用它(定义这些类型)。

答案 1 :(得分:0)

您尝试使用重定向实现了什么?你将在客户端使用一些消息拦截器来处理这种情况: http://msdn.microsoft.com/en-us/library/ms733786(v=vs.90).aspx