【发布时间】:2013-07-02 04:35:04
【问题描述】:
我正在构建一个 MVC4 Web 应用程序。我的要求是使用 log4net 记录控制器操作方法的 http 请求的执行持续时间。
我听说这样做的首选方法是创建一个自定义操作过滤器 - 在 onExecuting 方法中启动秒表 - 然后在 onExecuted 中记录持续时间。
我有一个自定义模型绑定器对我的存储库进行查询以构造复杂的对象。因为模型绑定器在过滤器之前执行,所以我无法获得准确的持续时间读数。
我可以使用自定义 HTTPModule,但我如何知道它是否路由到操作方法...
编辑:
我的操作将客户域对象作为参数。我使用自定义模型绑定器在 url 中查找密钥并从我的存储库中获取客户对象。
有什么想法吗?
【问题讨论】:
-
你的模型绑定器访问数据库是一个糟糕的设计,你开始明白为什么了。模型绑定器应该只绑定从客户端发送的数据。最好在 ActionFilter 中执行此操作,而不是在模型绑定器中执行此操作。