World Of ιζσεα.

The Dark Time Will Pass

 

NetTiers学习笔记10---Services Rethrow Exception

NetTiers 生成完毕后,Service层会使用logging记录异常日志
但是在默认情况下, 被捕获的异常没有被抛出, 下面是通过修改
entlib.config 实现, rethrow Exception.

<configuration>
    
<exceptionHandling>
        
<exceptionPolicies>
            
<add name="NoneExceptionPolicy">
                
<exceptionTypes>
                    
<add type="System.Exception, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
                      postHandlingAction
="NotifyRethrow" name="Exception">
                        
<exceptionHandlers>
                            
<add logCategory="Exceptions" eventId="100" severity="Error"
                              title
="TiannuoSA Exception Handling" formatterType="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.XmlExceptionFormatter, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
                              priority
="0" type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.LoggingExceptionHandler, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
                              name
="Logging Handler" />
                        
</exceptionHandlers>
                    
</add>
                
</exceptionTypes>
            
</add>
        
</exceptionPolicies>
    
</exceptionHandling>
</configuration>


 关键部分  postHandlingAction="NotifyRethrow"


完整的xml如下

完整的XML


posted on 2007-08-06 14:13 Ψιζσεα. 阅读(1030) 评论(15)  编辑 收藏 所属分类: .NetTiersEntLib

评论

#1楼  2007-08-10 00:43 jet1010 [未注册用户]

错误 1 源文件“C:\NetTiers\TimeTracker\TimeTracker.Data.WebServiceClient\Web References\WsProxy\Reference.cs”未能打开(“系统找不到指定的文件。 ”) TimeTracker.Data.WebServiceClient

这是什么原因   回复  引用    

#2楼 [楼主] 2007-08-10 09:04 iCaca      

我还么用过nettiers的 web service功能, 不好意思   回复  引用  查看    

#3楼  2007-08-27 16:52 icezs [未注册用户]

T<List>.Find()按主键find找到后 T<List>.Count 为一,
不管原先count是多少,都为一,怎么样才做到像RemoveFilter那样,恢复Count原来的值呢?

Filter对应有RemoveFilter.   回复  引用    

#4楼 [楼主] 2007-08-27 16:56 iCaca      

@icezs
粘一下代码吧   回复  引用  查看    

#5楼  2007-08-28 07:54 icezs [未注册用户]

SecurityRolePermission srp = new SecurityRolePermission();
SecurityRole sr=new SecurityRole();
SecurityRoleSearchFM srsfm = new SecurityRoleSearchFM(sr);
if (srsfm.ShowDialog() == DialogResult.OK)
{
srp.RoleID = sr.RoleID;
srp.RoleIDSource = sr;
srp.AppID = Convert.ToInt16(treeView1.SelectedNode.Name);
srp.Select = true;
srp.Insert = false;
srp.Delete = false;
srp.Update = false;
srp.Print = false;
srp.Export = false;
ListViewDetailAddSecurityRolePermission(srp);
if (srps.Find("RoleID", srp.RoleID) == null) //这个总是为true {
srps.Add(srp);
}
MessageBox.Show(srps.Count.ToString() + "---"); //这里永远是一,   回复  引用    

#6楼  2007-08-28 08:56 icezs [未注册用户]

是想判断一下TList<>中是否已有一个 entity,没有的话就add, 有的话不加   回复  引用    

#7楼  2007-08-28 10:20 icezs [未注册用户]

我用foreach遍历来判断了。( find 是会影响TList<>集合的。不知道怎么弄。)
SecurityRolePermission srp = new SecurityRolePermission();
SecurityRole sr=new SecurityRole();
SecurityRoleSearchFM srsfm = new SecurityRoleSearchFM(sr);
Boolean AddFlag = true;
if (srsfm.ShowDialog() == DialogResult.OK)
{
foreach (SecurityRolePermission srpTemp in srps)
{
if (srpTemp.RoleID==sr.RoleID)
{
AddFlag = false;
break;
}
}
if (AddFlag == true)
{
srp.RoleID = sr.RoleID;
srp.RoleIDSource = sr;
srp.AppID = Convert.ToInt16(treeView1.SelectedNode.Name);
srp.Select = true;
srp.Insert = false;
srp.Delete = false;
srp.Update = false;
srp.Print = false;
srp.Export = false;
ListViewDetailAddSecurityRolePermission(srp);
srps.Add(srp);
}   回复  引用    

#8楼 [楼主] 2007-08-28 12:51 iCaca      

我简单的试了一下

 HrmJobsService svc;
 protected void Page_Load(object sender, EventArgs e)
 {
  svc = new HrmJobsService();
  TList<HrmJobs> list = svc.GetAll();
  HrmJobs entity = list.Find(HrmJobsColumn.FId, 1);

 }

list在find之后 没有变化
entity 是null


我的NetTiers版本v2.2.0.619

  回复  引用  查看    

#9楼  2007-08-28 14:00 icezs [未注册用户]

list.Find();
list.Add();
list.count();
list.find();
list.Add();
list.Count();

像上面这样,我下面的代码是在一个点击事件中,多次 执行下面的srps.Count总是为一。srps是程序开始处定义的全局变量 。
if (srps.Find("RoleID", srp.RoleID) == null) //这个总是为true {
srps.Add(srp);
}
MessageBox.Show(srps.Count.ToString() + "---"); //这里永远是一,   回复  引用    

#10楼  2007-08-28 14:02 icezs [未注册用户]

忘了说,我Add 的总是同一个entity   回复  引用    

#11楼 [楼主] 2007-08-28 14:10 iCaca      



@icezs
srp.RoleID = sr.RoleID;
这个写法不正确, sr本来就是new出来的, sr.RoleID 是自增长的话
必须要保存后才会有.   回复  引用  查看    

#12楼  2007-08-28 15:56 icezs [未注册用户]

SecurityRoleSearchFM srsfm = new SecurityRoleSearchFM(sr);
有在模式窗口中赋值啊。   回复  引用    

#13楼  2007-10-11 11:12 lzw [未注册用户]

NetTiers 生成完毕后,Service层会使用logging记录异常日志

请问记录的异常有保存吗 ?? 这个Service我一点都不清楚 能详细说说吗 ? 谢谢    回复  引用    

#14楼 [楼主] 2007-10-11 14:32 Ψιζσεα.      

异常是否保存, 看你在entlib.config中的设置,
nettiers用了 enterprise library 的Logging Application Block
很多地方都有, 搜一下吧
另外你可以装一下enterprise library
里面有一个配置文件设置工具, 蛮好用的   回复  引用  查看    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  博客园首页

  新闻频道

  社区

  小组

  博问

  网摘

  闪存

  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-08-06 15:11 编辑过
成果网帮您增加网站收入


相关链接:
 

导航

统计

与我联系

搜索

 

常用链接

留言簿

随笔分类(49)

随笔档案(15)

新闻档案(1)

相册

最新随笔

积分与排名

最新评论

阅读排行榜

评论排行榜