0

我的 Asp.Net Web 应用程序对 WCF 服务进行了大量调用。对于调试 UI 问题,我使用反序列化早期保存的 WCF 响应。这由配置键控制。

但是,通过手动反序列化,我错过了一些可能由 Web.config 文件的 ServiceModel 中的错误条目引起的反序列化问题。

因此,我希望使用 WCF 扩展点 -

  1. 从磁盘读取 xml 响应。
  2. 让 WCF 框架为我反序列化 xml。

哪个可扩展点有助于实现这一目标?

编辑:

准确地说,我正在尝试使用这些值offline(不影响实际服务),以找到适合我们场景的最佳值 -

<binding name="voucherServiceBinding" closeTimeout="00:01:00" 
          openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" 
          bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" 
          maxBufferPoolSize="524288" maxReceivedMessageSize="65536" 
          messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" 
          allowCookies="false"> 
         <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" 
             maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
</binding>
4

1 回答 1

1

在 WCF 中绕过网络请求当然是可能的,但不幸的是它并不容易实现。您需要的是一个协议通道(即进入 WCF 通道层),它将拦截请求并做出响应,而不是将其发送到通道堆栈(它将到达传输通道)。

http://blogs.msdn.com/b/carlosfigueira/archive/2011/07/12/wcf-extensibility-channels.aspx上的帖子有一个可用于绕过服务器操作的通道示例。您需要从磁盘读取所需的 XML 并System.ServiceModel.Channels.Message基于它创建一个 WCF 对象。祝你好运。

于 2013-02-12T14:43:39.913 回答