2010年07月 小记(telnet,xml命名空间,MaxItemsInObjectGraph, IIS传输限制, memcached Telnet Interface)
1、在Windows 2008 R2下安装telnet客户端
PS C:\Users\Administrator> servermanagercmd -install telnet-client
2、使用XmlSerializer时移除xml声名和默认命名空间。

protected string ToXml(object objectToConvert)
{
string str = null;
using (MemoryStream stream = new MemoryStream())
{
//XmlWriterSettings.OmitXmlDeclaration移除xml声明
using (XmlWriter xmlWriter = XmlTextWriter.Create(stream,new XmlWriterSettings(){ OmitXmlDeclaration = true, Encoding = Encoding.UTF8 }))
{
//移除命名空间
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");
XmlSerializer serializer = new XmlSerializer(objectToConvert.GetType());
serializer.Serialize(xmlWriter, objectToConvert, ns);
byte[] buffer = new byte[stream.Length];
stream.Position = 0;
stream.Read(buffer, 0, (int)stream.Length);
str = Encoding.UTF8.GetString(buffer);
xmlWriter.Close();
}
stream.Close();
}
if (str != null)
{
str = str.Trim();
}
return str;
}
3、WCF通信中如果出现序列化错误,如:
"对象图中可以序列化或反序列化的项目数目上限为“65536”"
请注意配置MaxItemsInObjectGraph。
#通过代码配置:
1 2 3 4 5 6 7 8 9 10 | foreach ( var op in client.Endpoint.Contract.Operations) { var dataContractBehavior = op.Behaviors[ typeof (DataContractSerializerOperationBehavior)] as DataContractSerializerOperationBehavior; if (dataContractBehavior != null ) { dataContractBehavior.MaxItemsInObjectGraph = int .MaxValue; } } |
#通过配置修改:
<dataContractSerializer maxItemsInObjectGraph="2147483647" />
4、IIS传输限制
<httpRuntime maxRequestLength="20000" executionTimeout="600" />
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步