WCF扩展点:从磁盘而不是服务获取虚假响应?

时间:2013-02-12 11:50:47

标签: wcf

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

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

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

  1. 从磁盘读取xml响应。
  2. 让WCF框架为我解析xml。
  3. 哪个可扩展点可以帮助实现这个目标?

    修改

    确切地说,我正在尝试使用这些值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>
    

1 个答案:

答案 0 :(得分:1)

在WCF中绕过网络请求肯定是可能的,但不幸的是,它实现起来并不容易。你需要的是一个协议信道(即,进入WCF信道层),它将拦截请求并响应,而不是将其发送到信道栈(它将到达传输信道)。

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