过程中改变IP地址和接口想象的情况(这是真实情况):WCF客户端连接
有对笔记本电脑的WCF客户端应用程序。 笔记本电脑通过WiFi连接到互联网。 用户正在连接到WCF服务的笔记本电脑上执行一些操作(请求回复操作)。
然后用户的笔记本电脑处于睡眠状态,用户回家。在家用户唤醒他的笔记本电脑,连接HSPDA/3G调制解调器(不同的接口&IP),并希望继续在客户端应用程序的工作。请注意,应用程序尚未关闭。
用户(客户端应用程序)应该进行身份验证,如果可能的话,应该加密通信。
什么是最佳实践? 为每个操作创建新代理?初始化net.tcp连接和身份验证时,这应该非常慢。
解决方案basicHttp连接(+ HTTPS)与InstanceContextMode.PerCall?请注意,速度和更高的有效载荷是问题。或者最好的解决方案就像“wrapper(Func <>)”,其中包含while循环,直到操作成功完成(失败时,创建新连接并重新调用函数)。
感谢您的建议
我通常使用TransportWithMessageCredentials进行身份验证( net.tcp) – Tomino
我知道有一个NET <= 3.5的错误与net.tcp(第一认证/连接真的很慢)的身份验证。我在4.0中面临同样的问题 - 第一次拨打10s,其他电话很快。你不知道这个bug是否在.net 4.5中修复? – Tomino
@Tomino:不知道我是否会把它称为[bug](http://stackoverflow.com/questions/10859832/why-is-the-first-wcf-client-call-slow)。 –