调用WCF方法时有时会丢失参数值

时间:2016-10-11 02:47:20

标签: wcf session

我的系统有一个简单的功能就是按条件搜索顺序列表,并且有很多不同的条件。其中一个参数值来自会话值。如下面的代码。

long Namekey = session.NameKey;

准备好所有搜索参数后,它将调用一个WCF方法进行搜索,在WCF方法中,它有一个如下所示的行代码:

if (searchParam.NameKey > 0)
{
    query = query.Where(o => o.NameKey == searchParam.NameKey);
}

我们假设NameKey每次都有值,因为值是从会话获得的,但在实时版本中,有时查询不会应用NameKey条件。 即使在实时版本中也无法复制。

这很奇怪,我已经在创建NameKey为零或页面加载时为零时添加日志。

有没有人可以给我更多线索/点如何继续调查? WCF对此有些棘手吗?

感谢您的帮助!

-------------- 2016/10/14 add config ---------------

<binding name="XXXXX" closeTimeout="00:20:00" openTimeout="00:20:00" receiveTimeout="00:20:00" sendTimeout="00:20:00" transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions" hostNameComparisonMode="StrongWildcard" listenBacklog="10" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxConnections="10" maxReceivedMessageSize="2147483647">
          <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
          <reliableSession ordered="true" inactivityTimeout="00:20:00" enabled="false" />
          <security mode="None">
            <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
            <message clientCredentialType="Windows" />
          </security>
        </binding>

0 个答案:

没有答案