WCF格式化程序尝试反序列化消息时引发异常

时间:2020-02-23 05:40:57

标签: .net vb.net wcf wcf-binding

我制作了2个Win-forms桌面应用程序。它们彼此之间以字符串格式传递数据。

但是,如果字符串内容变大,则会出现以下错误:

“格式化程序尝试反序列化消息时抛出异常:尝试反序列化参数http://tempuri.org/:Code时发生错误。InnerException消息为'反序列化类型为System.String []的对象时发生错误。在读取XML数据时,已超出最大字符串内容长度配额(8192)。可以通过更改在创建XML阅读器时使用的XmlDictionaryReaderQuotas对象上的MaxStringContentLength属性来增加此配额。第216行,位置104。有关更多详细信息。”

创建服务器的代码在这里

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

尽管如此,我仍然无法正常工作并给出相同的错误。我该怎么办?

1 个答案:

答案 0 :(得分:2)

此参数在服务器和客户端之间序列化,因此我们还需要考虑在服务器端添加配置。
服务器端。

windows: 10 64x

node: 12.16.1

angular CLI: 7.3.9

angular: 6.1.10

请随时让我知道问题是否仍然存在。