我有这样的方法:
var stringReader = new StringReader(ruleSetXmlDefinition);
var reader = XmlReader.Create(stringReader);
var serializer = new WorkflowMarkupSerializer();
return serializer.Deserialize(reader) as RuleSet;
当ruleSetXmlDefinition长度超过32768个字符时,我收到以下错误:
解析名称时发生了意外的文件结束。第1行, 位置32768。
如何更改它以便它可以处理任何长度的字符串?
答案 0 :(得分:3)
我怀疑你可以配置Wcf来接受更大的数组,请参阅这个答案:
像
这样的东西<netTcpBinding>
<binding name="NetTcpBinding_ImageResizerServiceContract" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions"
hostNameComparisonMode="StrongWildcard" listenBacklog="10"
maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxConnections="10"
maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="2147483647"
maxStringContentLength="2147483647"
maxArrayLength="2147483647"
maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
<reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false" />
<security mode="Transport">
<transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
<message clientCredentialType="Windows" />
</security>
</binding>
</netTcpBinding>
答案 1 :(得分:1)
我找到了这个问题的答案,不幸的是,这是非常明显的......我传入的字符串实际上被截断了,所以实际上问题是xml没有很好地形成。