首页 / 知识
关于c#:在WCF / .NET中返回数据表
2023-04-12 07:26:00

Returning DataTables in WCF/.NET我有一个WCF服务,我想从中返回一个DataTable。我知道,就返回DataTables是否是一个好习惯而言,这通常是一个备受争议的话题。让我们搁置片刻。 如下所述,当我从头开始创建DataTable时,没有任何问题。该表已创建,填充并返回给客户端,一切正常:
但是,一旦我出去访问数据库以创建表,如下所示,我得到了CommunicationException"基础连接已关闭:该连接意外关闭。"
该表已在服务器端正确填充。它比我循环并返回的测试表小得多,而且查询又小又快-此处没有超时或大数据传输的问题。使用相同的确切函数和DataContracts / ServiceContracts / BehaviorContracts。 为什么表格的填充方式对表格的返回成功有影响? 对于任何有类似问题的人,我已经解决了我的问题。这是几倍。
希望能对某人有所帮助。 诊断此类WCF错误(实际上并不能告诉您太多)的最好方法是启用跟踪。在您的web.config文件中,添加以下内容:
然后,您可以在.NET Framework SDK(或与Visual Studio)一起提供的SvcTraceViewer.exe实用程序中打开生成的文件。在我的机器上,可以在%PROGRAMFILES%\ Microsoft SDKs \ Windows \ v6.0A \ Bin \ SvcTraceViewer.exe中找到它。 只需查找错误消息(粗体红色),它就会特别告诉您问题所在。 我将Datable添加到数据集中,然后像这样返回表...
希望能帮助到你 除了为所有绑定属性设置最大值。
确保您要从Web服务传递/返回的每个表都必须具有表名,这意味着 您想要的属性是OperationContract(在接口上)/ Operation Behavior(在方法上):
另外,在...我认为是服务配置...中,您想指定可以发送错误。您可能会遇到类似消息大小过大的错误等。您可以通过混淆阅读器配额等来解决此问题。 默认情况下,wsHttpBinding的接收大小配额为65KB,因此,如果序列化数据表的XML大于XML,它将抛出一个错误(我95%确信数据表中的数据大于65KB)。
您可以在 WSHttpBindingBase成员-查看ReaderQuotas属性以及MaxReceivedMessageSize属性。 您可能耗尽了配额-数据表大于连接允许的最大数据包大小。 您可能需要在连接上将MaxReceivedMessageSize和MaxBufferSize设置为更高的值。
在WCF服务中,失败的返回类型为
我认为Darren最有可能是正确的-为WCF提供的默认值小得可笑,如果碰到它们,您最终会遇到难以跟踪的错误。只要您尝试执行除简单测试用例之外的任何操作,它们就会出现。我浪费的时间比我想承认的调试问题多得多,这些问题原来与客户端和服务器上的各种配置(大小)设置有关。我想我最终修改了几乎所有它们,例如。 MaxBufferPoolSize,MaxBufferSize,MaxConnections,MaxReceivedMessageSize等。 话虽这么说,SvcTraceViewer实用工具也很棒。我确实遇到了一些情况,但并没有我想要的那样有用,但是总的来说,它是分析通讯流和错误的好工具。 |
最新内容
相关内容
python为什么没有return返回值
python为什么没有return返回值,培训,函数,语句,参数,赋值,变量,语法,下面,实际,以上,python中,用def语句创建函数时,可以用return语句指定应该python http服务怎么搭建
python http服务怎么搭建,服务,培训,环境,进程,命令,端口,后台,不是,终端,开头,在Linux服务器上或安装了Python的机器上,Python自带了一个WEBpython函数有返回值吗
python函数有返回值吗,培训,情况,函数,语句,结果,定义,以上,类型,更多,内容,python的函数可以有返回值,也可以没有返回值。函数需要先定义后调python的函数能返回多个值吗
python的函数能返回多个值吗,培训,位置,函数,结果,坐标,语句,简写,位移,括号,假象,函数体内部的语句在执行时,一旦执行到return,函数就执行完毕python怎样定义函数返回值
python怎样定义函数返回值,培训,代码,函数,定义,形式,以上,感觉,结果,更多,内容,python函数返回值,两种形式:1返回一个值。2返回多个值。现看看python函数返回值是不是整形
python函数返回值是不是整形,培训,观察,函数,参数,逗号,类型,表达式,示例,语句,错误,python函数的返回值我们知道,函数可以通过return[表达式]python函数返回值是什么
python函数返回值是什么,培训,代码,位置,简介,函数,语句,上面,结束,结果,变量,return语句位置与多条return语句1、python函数使用return语句python函数如何不返回none
python函数如何不返回none,培训,函数,语句,变量,赋值,参数,实际,结果,字符串,语法,python中,用def语句创建函数时,可以用return语句指定应该返python函数的返回值是什么
python函数的返回值是什么,培训,简介,函数,语句,结果,类型,结束,定义,以上,作用,python的返回值简介函数需要先定义后调用,函数体中return语句python静态web服务器如何实现
python静态web服务器如何实现,数据,培训,服务,代码,时间,服务器,静态,报文,浏览器,消息,python静态web服务器如何实现的方法:1、编写TCP服务器pythoncenter()如何填充字符串
pythoncenter()如何填充字符串,培训,字符串,四川大学,字符,长度,参数,前后,文字,空格,表示,pythoncenter()如何填充字符串说明1、字符串对象pythonsplitlines在python中返回列
pythonsplitlines在python中返回列表,培训,列表,方法,空格,实例,以上,参数,时候,操作,教程,splitlines在python中返回列表说明1、splitlines(