最近一直在忙项目,之前说过要把百度贴吧辅助工具的源代码发布出来也一直没有时间来在做。今天把在工作中遇到的一个小问题记录一下。
由于现在项目中使用的是WCF服务来进行通讯,很多时候在内网使用都没有注意。项目上线后客户端发布到了外网。这时问题出来了,客户端第一次打开时很卡很卡。这个问题不知道怎么解决,如果谁知道确切的原因请留言或者私下指导我一下。在此先谢谢了!而且在使用WCF服务时所有的内容都使用明文传输,这样难免留下了很多不安全因素。速度又慢安全性又低,在搜索了很多资料之后又的人说使用WCF它会将传输的DataTable序列化成比较庞大的XML所以传输速度慢。我不知道具体是不是真的,但还是做了一点修改,写了一个方法来序列化。我先将DataTable转换成数据流,再将数据流编成Base64的字符串进行传送。
[code lang=”csharp”]///
///
/// 对象///
public static string ObjectToBase64String(object o)
{
MemoryStream ms = new MemoryStream();
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(ms, o);
ms.Close();
return Convert.ToBase64String(ms.ToArray());
}
///
///
/// Base64String///
public static object Base64StringToObject(string basestr)
{
Byte[] blob = null;
blob = System.Convert.FromBase64String(basestr);
MemoryStream ms = new MemoryStream(blob, 0, blob.Length);
BinaryFormatter bf = new BinaryFormatter();
return bf.Deserialize(ms);
}[/code]
在使用的时候记得把Config文件的绑定上面修改
[code lang=”xml”]maxStringContentLength="2097152"[/code]
其实这个方法很多地方可以用到,虽然安全级别比较低,但还是避免了在传输时的明文内容,这不单单指序列化DataTable。
本博客所有文章如无特别注明均为原创
如果觉得对你有帮助,可以通过下方打赏对作者表示鼓励
本文采用知识共享署名-非商业性使用-相同方式共享
如若转载,请注明出处:《WCF中通过序列化传输内容来提高安全性以及访问速度》https://www.fangsi.net/648.html
评论列表(2条)
终于找到一个关于。net的独立技术博客了~~~而且看起来经验已经相当丰富了!最近在实习,也正在用WCF技术!已经收藏了这个博客了,希望可以学到更多东西
@阿水:是的,主打.NET啊。只是把自己工作上面遇到的问题记录一下。