运行一下,目标出现~~~
未处理 System.ServiceModel.FaultException
Message="The formatter threw an exception while trying to deserialize the message: Error in deserializing body of request message for operation 'Test'. The maximum string content length quota (8192) has been exceeded while reading <a href="http://tech.ddvip.com/web/xml/index.html" target="_blank">XML</a> data. This quota may be increased by changing the MaxStringContentLength property on the XmlDictionaryReaderQuotas object used when creating the XML reader."
既然已经有了详细提示,那么我们就按照提示做。
AppDomain.CreateDomain("Server").DoCallBack(delegate
OK!可以运行了。我们继续加大传递的字符串。
IService channel = ChannelFactory<IService>.CreateChannel(
new
NetTcpBinding(),
new
EndpointAddress(
"net."
));
using
(channel
as
IDisposable)
{
channel.Test(
new
String(
'a'
, 1024 * 100));
}
哎~~ 新的异常出现了。
未处理 System.ServiceModel.CommunicationException
Message="The maximum message size quota for incoming messages has been exceeded for the remote channel. See the server logs for more details."
看异常提示,这回要改的是 channel 的信息。
{
XmlDictionaryReaderQuotas quotas = new XmlDictionaryReaderQuotas(); quotas.MaxStringContentLength = 6553500; NetTcpBinding binding = new NetTcpBinding(); binding.ReaderQuotas = quotas; binding.MaxReceivedMessageSize = 6553500; // <---- Here!-------------- ServiceHost host = new ServiceHost(typeof(Service), new Uri("net.tcp://localhost:8080/service")); host.AddServiceEndpoint(typeof(IService), binding, ""); host.Open();});IService channel = ChannelFactory<IService>.CreateChannel(new NetTcpBinding(), new EndpointAddress("net.tcp://localhost:8080/Service")); using (channel as IDisposable){ channel.Test(new String('a', 1024 * 100));}