博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决WCF调用多次之后没有响应的问题 转
阅读量:6987 次
发布时间:2019-06-27

本文共 1371 字,大约阅读时间需要 4 分钟。

我最近遇到了一个缠扰不清的问题与WCF。  在RC1突然优良运作的应用开始断断续续地无法在发行修造.NET 3.0。  最复杂的是错误未返回,没有提供什么的调试信息。  客户调用到服务器未曾返回,但垂悬了,并且服务器没有提供故障信息。好象消息进入死区,。 

 

在与WCF团队一些咨询以后,它被确定改变对缺省serviceThrottling的行为在修造的祸根。  缺省是16 MaxConcurrentCalls和10 MaxConcurrentSessions,  如此, 客户调用时真实地进入死区,并且服务器没有能提供任何信息,因为它没有能甚而处理他们。 在这种情况下,客户产生多条线程(~10个代理人)并且发布多个异步请求(~15)从每个代理人。  您做这种估算,并且您能看发生什么。

 

确定的是做二件事。  首先, < behaviors > 更新app.config文件的部分如下:

<behaviors>

            <serviceBehaviors>
                <behavior name="NewBehavior">
                    <serviceThrottling maxConcurrentCalls="50" maxConcurrentSessions="50" />
                </behavior>
            </serviceBehaviors>
        </behaviors>

 

以上是从一个英文博客翻译过来的,由于本人不是英语专业,可能翻译有点不通或者有错误,请看原文

 

解决方案二

最近发现,导致超过会话默认值原因是:

WcfVDSelect.VDClsServiceClient MyService = new VDItemSelect.WcfVDSelect.VDClsServiceClient();

其中WcfVDSelect是你在客户端添加服务引用时的名称,VDClsServiceClien是服务的类..GetString是类里的方法..
多次调用出错原程序:
private void btnOk_Click(object sender, EventArgs e)
{
WcfVDSelect.VDClsServiceClient MyService = new VDItemSelect.WcfVDSelect.VDClsServiceClient();
MyService.GetString("aaa");

}

当我们每次调用WCF服务时,都创建一个实例,这时WCF就没创建一个会话..当你点击十次按钮时,就会出错超时..原因超过会话的默认值....

其实我们可以用一个静态变量先放在内存里不释放,如

private staticWcfVDSelect.VDClsServiceClient MyService = new VDItemSelect.WcfVDSelect.VDClsServiceClient();

private void btnOk_Click(object sender, EventArgs e)

{
MyService.GetString("aaa");

}

无论你点多少次,都不会出错的了..这样可能WCF就认为是一个会话....

第一种解决方案与第二种都可以解决,不过第一种的话,我们不知道要设置多大的会话,为了减少会话,第二种会更好些

转载地址:http://hlwvl.baihongyu.com/

你可能感兴趣的文章
第一篇:尽量多的以 const/enum/inline 替代 #define
查看>>
第十五篇:C程序的存储空间布局
查看>>
飞得更高: (一)陌生电话
查看>>
哪些年是闰年
查看>>
【手把手教你Maven】构建过程
查看>>
【JSP EL】EL表达式获取当前时间(两种方式)
查看>>
记一次生产环境axis2服务特别慢的问题。
查看>>
@Linux下Redis的安装
查看>>
一步一步实现字母索引导航栏
查看>>
解决哈希冲突常用的两种方法是:开放定址法和链地址法
查看>>
CentOS 7 安装Boost 1.61
查看>>
artTemplate模板引擎学习实战
查看>>
HttpPost+json请求---服务器中文乱码及其他
查看>>
tomcat 8 加 struts2的 java.lang.NoSuchFieldException: resourceEntries
查看>>
Docker 常用命令
查看>>
JVM调优之---一次GC调优实战
查看>>
三.微信授权
查看>>
Python内置的urllib模块不支持https协议的解决办法
查看>>
linux文件系统比较
查看>>
大多数女生为什么不适合当程序员?
查看>>