使用vs2008、vb.net、C#和fw 3.5
我在客户端中使用我的服务
服务托管在IIS中
客户端(winforms MDI)使用svcutil生成,使用了/l、/r、/ct和/n开关
服务和客户端都使用MyEntities.dll
我使用TransportWithMessageCredential的nettcp,将代理缓存到主窗体中
if Membership.ValidateUser(UsernameTextBox.Text, PasswordTextBox.Text)
_proxy = new MyServiceClient
_proxy.ClientCredentials.UserName.UserName = "username"
_proxy.ClientCredentials.UserName.Password = "password"
我将_proxy传递给需要使用它的任何子表单/插件 ex。
List(of Orders) = _proxy.ChannelFactory.CreateChannel.GetOrders(customer)
一切都运行得很好, 但我的问题是:
通话结束后这些通道会消失吗,还是它们会被神奇地处理掉?
我怎样才能用分析器监视它们?
是否有办法把错误处理放在一个地方, 或者我需要在每个调用中都放置try/catch, 就像WCF客户端`using`块问题的最佳解决方法是什么?
try
{
...
client.Close();
}
catch (CommunicationException e)
{
...
client.Abort();
}
catch (TimeoutException e)
{
...
client.Abort();
}
catch (Exception e)
{
...
client.Abort();
throw;
}
我能订阅 _proxy.InnerChannel.Faulted 并且在那里执行清理操作吗?
谢谢
_Eric