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