Właśnie zwiększyłem liczbę metod w mojej ServiceContract. kiedy zaktualizować Reference Service w Visual Studio dostaję komunikat:Przekroczono maksymalny limit liczby znaków (16384)
Metadane zawiera odniesienie, które nie mogą zostać rozwiązane: 'Net.TCP: //xxxxx.com: 8002/DataQueryService/mex'.
Wystąpił błąd w dokumencie XML.
Maksymalny znak liczby znaków Ilość przydziału (16384) została przekroczona podczas odczytu danych XML. Nalepka jest strukturą danych używaną do przechowywania ciągów napotkanych podczas przetwarzania XML w formacie XML - długie dokumenty XML z nie powtarzającymi się nazwami elementów, nazwy atrybutów i wartości atrybutów mogą wyzwalać ten przydział. Limit ten można zwiększyć, zmieniając właściwość MaxNameTableCharCount na obiekcie XmlDictionaryReaderQuotas używanym podczas tworzenia czytnika XML .
Oryginalny stronie serwera config było:
<services>
<service behaviorConfiguration="XXXXX.DataQueryService.ServiceBehavior" name="XXXXX.DataQueryService.QueryService">
<host>
<baseAddresses>
<add baseAddress="net.tcp://xxxxx.com:8002/DataQueryService" />
</baseAddresses>
</host>
<endpoint name="MexEndpoint" address="mex" binding="customBinding" bindingConfiguration="unsecureTcpMex" contract="IMetadataExchange" />
</service>
</services>
<bindings>
<customBinding>
<binding name="unsecureTcpMex">
<tcpTransport portSharingEnabled="True" />
</binding>
</customBinding>
</bindings>
której zmodyfikowany:
<bindings>
<customBinding>
<binding name="unsecureTcpMex">
<textMessageEncoding>
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
</textMessageEncoding>
<tcpTransport portSharingEnabled="True" maxReceivedMessageSize="2147483647" />
</binding>
</customBinding>
</bindings>
Jakie inne zmiany muszę zrobić do mojego config aby uzyskać tej pracy?
Aktualizacja Po wykonaniu rady Chrisa próbowałem zaktualizować plik konfiguracyjny dla SVCUtil. Dodałem nazwę do mojego punktu końcowego, aby był zgodny (zaktualizowany powyżej). SvcUtil.config przedstawia się następująco:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.serviceModel>
<bindings>
<customBinding>
<binding name="unsecureTcpMex">
<textMessageEncoding>
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
</textMessageEncoding>
<httpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" />
</binding>
</customBinding>
</bindings>
<client>
<endpoint binding="customBinding" bindingConfiguration="unsecureTcpMex"
contract="IMetadataExchange"
name="MexEndpoint" />
</client>
</system.serviceModel>
</configuration>
Może wiadomości są po prostu zbyt duże lub zbyt złożone z wielu elementów XML/atrybuty? –
Jest to liczba kontraktów operacyjnych, które wzrosły. To powoduje problem. – openshac
Z jaką wersją WCF pracujesz (obie strony)? – ranieuwe