我正在为我的WCF服务使用basicHttpBinding,并且有一个消息检查器,在某些情况下将响应代码设置为Redirect。我发现WCF代理(由svcutil生成)会自动尝试遵循重定向。我该如何防止这种情况发生?
谢谢, 普里亚
答案 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
是您的服务合同,MyRequestType
和MyResponseType
是您的数据合同,您可以通过引用服务也引用的程序集来使用它(定义这些类型)。
答案 1 :(得分:0)
您尝试使用重定向实现了什么?你将在客户端使用一些消息拦截器来处理这种情况: http://msdn.microsoft.com/en-us/library/ms733786(v=vs.90).aspx