Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何在NHibernate中跟踪查询的原因/堆栈跟踪_Asp.net_Nhibernate_Log4net - Fatal编程技术网

Asp.net 如何在NHibernate中跟踪查询的原因/堆栈跟踪

Asp.net 如何在NHibernate中跟踪查询的原因/堆栈跟踪,asp.net,nhibernate,log4net,Asp.net,Nhibernate,Log4net,我有一个页面,其中我发布了一些查询,所有查询都使用log4net记录: <appender name="NHibernateAppenderSQL" type="log4net.Appender.RollingFileAppender"> <file value="c:\dev\log\nhibernate-sql.log" /> <appendToFile value="true" /> <maximumFileSize value="10MB" /&

我有一个页面,其中我发布了一些查询,所有查询都使用log4net记录:

<appender name="NHibernateAppenderSQL" type="log4net.Appender.RollingFileAppender">
<file value="c:\dev\log\nhibernate-sql.log" />
<appendToFile value="true" />
<maximumFileSize value="10MB" />
<maxSizeRollBackups value="2" />

<layout type="log4net.Layout.PatternLayout">
  <conversionPattern value="%date %level %thread %logger - %message%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
  <acceptOnMatch value="true" />
  <levelMin value="DEBUG" />
  <levelMax value="FATAL" />
</filter>

<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
</appender>

因此,我可以查看页面生存期内发出的所有查询(ASP.NET Web表单)。我发现出于某种原因,NHibernate向我的一个表发出了大约10个id查询。我希望通过预加载数据来提高性能。但是,我无法确定触发这些查询的位置


我知道NHibernate Profiler可以让我安心,但我没有在工作中使用它的许可证。有没有其他方法可以找出这些查询的原因。我还分析了映射文件,但没有成功。

编辑:我假设您使用的是MVC。。。它似乎适用于普通的旧ASP.NET

我用它来找出慢点,提高我的网站性能。它是由StackOverflow创建的框架。它提供查询,通过添加步骤,您可以确定谁在调用它


它还与nHibernate集成,以显示执行的sql,以及每个页面渲染在sql中花费的时间。

我使用ASP.NET Web表单,但谢谢,在将来可能会有用。我仔细检查了它,它似乎支持您的情况。