1), Как упомянуто Greg, wstring полезен для интернационализации, именно тогда Вы будете выпускать свой продукт на языках кроме английского языка
, 4) Проверяют это для широкого символа http://en.wikipedia.org/wiki/Wide_character
Существует множество настроек, которые могут повлиять на ваши настройки - попробуйте следующее:
<bindings>
<webHttpBinding>
<binding name="LargeWeb"
maxBufferPoolSize="1500000"
maxReceivedMessageSize="1500000"
maxBufferSize="1500000">
<readerQuotas
maxArrayLength="656000"
maxBytesPerRead="656000"
maxDepth="32"
maxNameTableCharCount="656000"
maxStringContentLength="656000"
/>
</binding>
</webHttpBinding>
</bindings>
Определив вашу «версию» webHttpBinding и установив все эти параметры при более высоких значениях вы сможете получить сообщение любого размера (почти).
Имейте в виду: это действительно открывает вашу систему для того, чтобы она могла быть переполнена огромными сообщениями и, таким образом, быть поставлена на колени (классические атаки типа «отказ в обслуживании») - вот почему эти ограничения установлены довольно низко - дизайн и намеренно.
Вы можете изменить их на более высокие значения - просто знайте, что вы делаете и каковы риски безопасности, если вы это сделаете!
Marc
PS: Чтобы использовать эти настройки, вы, конечно, должны ссылаться на эту конфигурацию привязки в конфигурациях на стороне сервера и клиента:
<client>
<endpoint address="http://localhost"
binding="webHttpBinding" bindingConfiguration="LargeWeb"
contract="IMyService" />
</client>
<services>
<service>
<endpoint address="http://localhost"
binding="webHttpBinding" bindingConfiguration="LargeWeb"
contract="IMyService" />
</service>
</services>