使用 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 传递给任何需要使用它的子表单/插件
List(of Orders) = _proxy.ChannelFactory.CreateChannel.GetOrders(customer)
一切都很好,但我的问题是:
通话后频道会发生什么?他们被魔法处置了吗?
我怎么能用探查器来监控呢?
有没有一种方法可以在一个地方进行错误处理,或者我是否需要在每个调用中放置 try/catch,例如WCF 客户端“使用”块问题的最佳解决方法是什么?
try
{
...
client.Close();
}
catch (CommunicationException e)
{
...
client.Abort();
}
catch (TimeoutException e)
{
...
client.Abort();
}
catch (Exception e)
{
...
client.Abort();
throw;
}
我可以订阅 _proxy.InnerChannel.Faulted 并在那里进行清理吗?
问候
_埃里克