我试图找到这个问题的答案,但我没有找到任何明确的答案。所以我的问题是,在我粘贴的代码中:
- 以这种方式抛出异常是否正确?(超级例外)
- Dispose 是否已执行?
- HTTPApplication 会发生什么?(生命周期结束了吗?)
此代码在 .NET 2.0 Web 服务中执行。
[WebMethod]
[SoapHeader ("Credentials", Required=true)]
public void DoSomething ()
{
if (AuthenticationModule.IsValid (Credentials) && AuthenticationModule.CanPerformAction (Credentials, Permissions.DoSomething)) {
using (ISession session = NHibernateUtil.SessionFactory.OpenSession()) {
if(Condition)
throw new ApplicationException("Super exception");
session.Close ();
}
}
else
throw new SecurityException("Invalid user or inssuficient privileges");
}