日志不能记录出错的行号和方法

【Help】 2015-06-19 10:03:27

以下是记录的方法,本地信息都可以显示,行号,方法都正常,但是发布的服务器后就看不到具体的报错的行号和错误信息,望大神指点

public class HandleErrorAttribute : ActionFilterAttribute
{
private readonly log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
Exception exp = filterContext.Exception;
if (exp != null)
{
StackTrace st = new StackTrace(exp, true);

logger.ErrorFormat("错误的信息:{0},出错的方法名:{1},出错的类名:{2},出错链接:{3},出错行号:{4},文件名:{5},错误的堆栈{6}",
exp.Message, exp.TargetSite.Name, exp.TargetSite.DeclaringType.FullName,
filterContext.HttpContext.Request.Url, st.GetFrame(0).GetFileLineNumber(), st.GetFrame(0).GetFileName(), exp.StackTrace);
...全文
714 23 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
fzwyg 2019-05-17
  • 打赏
  • 举报
回复
兄弟,你问题后面怎么解决的?我碰到你类似问题了
对酒当歌丶 2019-03-08
  • 打赏
  • 举报
回复
引用 15 楼 於黾 的回复:
[quote=引用 11 楼 zhanglong_longlong 的回复:]
[quote=引用 10 楼 Z65443344 的回复:]
我问的是,你到底是webform还是winform
光放个类出来,也只能看出是C#语法,鬼知道到底是什么应用
这个你看不出来他是MVC吗?[/quote]
我为什么要能看出它是MVC,MVC是什么特征??
MVC是一种架构,只看一小段代码你能看出是MVC?
不会是你只用过MVC,所以看什么都像MVC吧[/quote]

没用过VS都知道是MVC
canyon02 2017-02-18
  • 打赏
  • 举报
回复
楼主找到方法了吗,我也遇到这个问题了
  • 打赏
  • 举报
回复
debug模式就好了,不过稳定的产品,用release对提高性能有帮助(代码在编译时会自动优化)
熊猫龙 2015-06-25
  • 打赏
  • 举报
回复
用 log4.net吧
wyumening 2015-06-24
  • 打赏
  • 举报
回复
选择重新生成解决方案 ,然后把debug目录下的dll和pdb文件都上传到服务器上去再看看能否记录行号
【Help】 2015-06-24
  • 打赏
  • 举报
回复
引用 16 楼 wjq 的回复:
debug模式编译,再包括pdb就行了
都试过,不行
wjq 2015-06-23
  • 打赏
  • 举报
回复
debug模式编译,再包括pdb就行了
於黾 2015-06-19
  • 打赏
  • 举报
回复
引用 6 楼 starfd 的回复:
至于没方法名什么的是因为你是release模式,不是debug模式
网站分release模式和debug模式? 楼主确定你问的是ASP.NET,没有发错模块?
【Help】 2015-06-19
  • 打赏
  • 举报
回复
引用 5 楼 starfd 的回复:
所有的.pdb文件都要包含
我编译后的pdb文件放进去还是一样
  • 打赏
  • 举报
回复
至于没方法名什么的是因为你是release模式,不是debug模式
  • 打赏
  • 举报
回复
所有的.pdb文件都要包含
【Help】 2015-06-19
  • 打赏
  • 举报
回复
引用 3 楼 starfd 的回复:
exp.StackTrace就是包含详细信息的,你说发布后不显示,不懂啥意思,能有个异常例子么?
就是发布后记录的日志里面的行号为0,方法也没有,网上查说要加PDB文件一起发了,但是也没用
  • 打赏
  • 举报
回复
exp.StackTrace就是包含详细信息的,你说发布后不显示,不懂啥意思,能有个异常例子么?
【Help】 2015-06-19
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
直接ex.Tostring就可以了
问题我想解决发布后不显示的问题
  • 打赏
  • 举报
回复
直接ex.Tostring就可以了
於黾 2015-06-19
  • 打赏
  • 举报
回复
引用 11 楼 zhanglong_longlong 的回复:
[quote=引用 10 楼 Z65443344 的回复:] 我问的是,你到底是webform还是winform 光放个类出来,也只能看出是C#语法,鬼知道到底是什么应用
这个你看不出来他是MVC吗?[/quote] 我为什么要能看出它是MVC,MVC是什么特征?? MVC是一种架构,只看一小段代码你能看出是MVC? 不会是你只用过MVC,所以看什么都像MVC吧
明缘 2015-06-19
  • 打赏
  • 举报
回复
把web.config文件发出来看看。
  • 打赏
  • 举报
回复
发布选项哪里选debug,配置也配成debug,pdb也要有,你试下是不是这样子后就能拿到方法名和行号了
  • 打赏
  • 举报
回复
配置
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
</system.web>

</configuration>

发布设置
加载更多回复(3)

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧