【发布时间】:2020-02-23 05:40:57
【问题描述】:
我制作了 2 个 Win-forms 桌面应用程序。它们相互传递数据,并且大多以字符串格式传递。
但是,如果字符串内容变得有点大,我会收到以下错误:
“格式化程序在尝试反序列化消息时抛出异常:尝试反序列化参数http://tempuri.org/:Code时出错。InnerException消息是'反序列化System.String []类型的对象时出错。读取 XML 数据时已超出最大字符串内容长度配额 (8192)。可以通过更改创建 XML 读取器时使用的 XmlDictionaryReaderQuotas 对象的 MaxStringContentLength 属性来增加此配额。第 216 行,位置 104。'。有关更多信息,请参阅 InnerException详情。”
创建服务器的代码在这里
Try
host = New ServiceHost(GetType(MainServerCode), New Uri("http://localhost:6767"))
host.AddServiceEndpoint(GetType(MainInterface), New BasicHttpBinding(), "Editor")
host.Open()
Catch ex As Exception
End If
触发字符串的代码在这里
Try
Dim Binding As New BasicHttpBinding()
binding.MaxBufferSize = binding.MaxBufferSize * 2
binding.MaxReceivedMessageSize = binding.MaxBufferSize
binding.ReaderQuotas.MaxStringContentLength = Integer.MaxValue
Dim httpFactory As New ChannelFactory(Of TAFunc)(binding, New EndpointAddress("http://localhost:6768/XXX"))
Dim httpProxy As TAFunc = httpFactory.CreateChannel(), R(-1), D(-1) As String
httpProxy.RunScript(name, scode, type, nbar, R, D)
' array sc code contains textual data (string)
Result = R
DebugData = D
Catch ex As Exception
Debug.Print(ex.Message)
End Try
尽管我做了所有事情,但它不起作用并给出了同样的错误。我该怎么办?
【问题讨论】:
标签: .net vb.net wcf wcf-binding