【发布时间】:2021-05-02 06:53:26
【问题描述】:
我正在处理我的 .NET 应用程序的问题。我正在调用 Web 服务来与我的数据库进行交互。但我有一个问题。
我正在通过我的 Web 服务上的列表发送 XML 内容。但是一旦我调用它,它就会由于错误而立即停止。我试图减少列表长度。它适用于我的前 2 个列表,但不适用于最后一个。
一开始,我有一个类的 43k 个对象的列表。我意识到这对我的网络服务来说太多了。
' ListOfElements is a List(Of List(Of T))
Dim addedObject as New List(Of T)
For Each element As List(Of T) In ListOfElements
' ListOfElements contains 5 List(Of T)
' element contains 7.5k T object
WS.InsertInDb(element, addedObject)
Next
因此,我代替它,将该列表切割成一个类的 10k 个对象的子列表。它正在工作,但在第三次通话后不再有效。我尝试将其减少到 7.5k,一直工作到第四次通话。
您知道我如何获取我的请求长度,以便更好地了解它发送到我的网络服务的内容吗?
因为有一天,它起作用了,后天就不行了。
【问题讨论】:
-
网络服务的最大请求长度限制是多少?您可以同时控制 .NET 应用程序和 Web 服务吗?
-
最大请求长度默认为1。我确实可以访问两者,但我无法编辑 Web 服务的 web.config。这就是为什么我必须只在 .NET 应用程序上工作
-
不清楚什么是网络服务?假设它是
WCF那么它应该是 4096 kb 吗?它也可以限制在IIS。您是否尝试过将请求长度限制为 4096 kb ? -
请编辑问题并显示代码以及您如何检查应用程序的请求长度,根据这些 cmets 无法猜测发生了什么。
-
如果这是带有 SOAP 的 ASMX 并在 VS 中使用旧版添加服务,则更容易捕获异常,然后关闭连接并重新打开它,冲洗并重复,直到所有内容都发送完毕。