15
我有一个ELMAH问题。我认为这是连接字符串,但不知道为什么。它通过电子邮件发送错误没有问题,只是没有将它们记录到sql中。如果问题是权限问题,我将如何捕获错误以向我显示权限问题?这里是我的web.config中的ELMAH相关章节:ELMAH在SQL Server中登录
<configSections>
<sectionGroup name="elmah">
<section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" />
<section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />
<section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />
<section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" />
<section name="errorTweet" requirePermission="false" type="Elmah.ErrorTweetSectionHandler, Elmah" />
</sectionGroup>
<connectionStrings>
<add name="ErrorLog" connectionString="Data Source=SQL1;Initial Catalog=ASBESTOS;User Id=MyUserName;Password=MyPassword" providerName="System.Data.SqlClient" />
<system.web>
<httpModules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
</httpModules>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
</modules>
<validation validateIntegratedModeConfiguration="false" />
<elmah>
<security allowRemoteAccess="1" />
<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="ErrorLog"/>
<errorMail from="[email protected]" to="[email protected]" subject="Asbestos Error Log" async="true"></errorMail>
</elmah>
<location path="elmah.axd" inheritInChildApplications="false">
<system.web>
<authorization>
<allow roles="System" />
<deny users="*" />
</authorization>
<httpHandlers>
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>
</system.web>
<system.webServer>
<handlers>
<add name="ELMAH" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
</handlers>
</system.webServer>
</location>
呃。我是一个白痴。在部分项目中,我切换到了Code First,并重新构建了数据库,包括ELMAH表,这意味着对表的权限发生了变化。所以,关于权限的提示是正确的。谢谢。 – 2013-07-25 21:00:02
非常有帮助。仅供参考添加执行权限的语法是:GRANT EXECUTE ON [StoredProcName] TO [UserName] – Bern 2017-06-28 12:33:47