javascript

java

python

c#

android

c++

node.js

php

html

jquery

ios

reactjs

css

.net

git

ruby-on-rails

sql

c

ruby

string

CodeGo.net> Elmah的:没有HttpContext的例外?

我在Application_Start上生成了一个线程,并希望记录异常。 没有ErrorSignal.FromCurrentContext().Raise(ex);,那么如何记录它?

目前,它在我的线程中没有捕获任何异常,并且如果我写ErrorSignal.FromCurrentContext().Raise(ex);,我将收到有关上下文的错误,不能为null。

也许我可以创建一个虚拟的HttpContext,但是以某种方式我认为它不会很好用。

-edit-我尝试了ErrorSignal.Get(new HttpApplication()).Raise(ex);,但似乎没有发现该异常。

trans by 2020-08-11T21:55:13Z

asp.net mvc-如何保护Elmah.axd?

我们正在使用Elmah作为我们的错误记录系统,该应用程序即将投入生产。 它非常有用,但是如果这样投入生产,世界上任何人都将访问错误日志,因为他们要做的就是访问ourdomain.com/elmah.axd

这显然是不理想的。 我原本打算将访问该页面的权限仅限制为公司内部的IP地址,但是现在我们的SysAdmins表示这是不可能的。 所以我在这里问如何防止访问此资源?

我们在IIS 6上运行ASP.NET MVC应用程序。

trans by 2020-06-17T04:52:11Z

c#-ELMAH-没有HttpContex的异常记录

我用Elmah.XmlFileErrorLog尝试了此解决方案,但出现了以下异常

System.ArgumentNullException was unhandled by user code
  Message="Value cannot be null.\r\nParameter name: context"
  Source="Elmah"
  ParamName="context"
  StackTrace:
       at Elmah.ErrorSignal.FromContext(HttpContext context) in c:\builds\ELMAH\src\Elmah\ErrorSignal.cs:line 67
       at Elmah.ErrorSignal.FromCurrentContext() in c:\builds\ELMAH\src\Elmah\ErrorSignal.cs:line 61
       at ElmahHttpErrorHandler.ProvideFault(Exception error, MessageVersion version, Message& fault) in c:\Myapplication\App_Code\Util\ElmahHttpErrorHandler.cs:line 19
       at System.ServiceModel.Dispatcher.ErrorBehavior.ProvideFault(Exception e, FaultConverter faultConverter, ErrorHandlerFaultInfo& faultInfo)
       at System.ServiceModel.Dispatcher.ErrorBehavior.ProvideMessageFaultCore(MessageRpc& rpc)
       at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessageCleanup(MessageRpc& rpc)
  InnerException: 

Web.Config文件

<configSections>
    <section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    <section name="exceptionHandling" type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Configuration.ExceptionHandlingSettings, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
        <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
            <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
            <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
                <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
                <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
                <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
                <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
            </sectionGroup>
        </sectionGroup>
    </sectionGroup>
  <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" />
  </sectionGroup>
</configSections>
<httpHandlers>
  <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
  <remove verb="*" path="*.asmx"/>
    <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
</httpHandlers>
<httpModules>
    <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
  <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
</httpModules>
...

<elmah>
  <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" />
  <security allowRemoteAccess="1" />
</elmah>

我正在使用Windows7。与它相关的任何问题吗?

更新注意:我正在ASP.NET下运行WCF服务。 即,我已经通过添加新网站将WCF服务项目添加到解决方案中,然后选择WCF服务模板。 我目前正在IDE中运行它。 托管在IIS上也没有帮助。

trans by 2020-02-08T01:17:12Z

elmah-如何在ASP.NET MVC应用程序中获取“真实的” HttpContext?

不幸的是,我需要这样做。 我将ELMAH用于错误日志。 在转到我的error.aspx视图之前,我必须获取默认的ELMAH错误日志,以便可以记录该异常。 你曾经能够使用

Elmah.ErrorLog.Default

但是,现在将其标记为已过时。 编译器指示我使用该方法

Elmah.ErrorLog.GetDefault(HttpContext context)

MVC的上下文是HttpContextBase类型,它使我们能够对其进行模拟(是!)。 我们如何处理需要旧样式HttpContext的不支持MVC的库?

trans by 2020-01-06T12:26:55Z

asp.net-elmah是否将捕获的异常作为

ELMAH是否记录异常,即使它们没有冒泡到应用程序中? 我想在发生异常时弹出一条消息,并仍然记录该异常。 目前,我一直在将所有内容放入尝试捕获块并吐出消息,但这很乏味。

trans by 2019-12-28T22:47:26Z

使用Elmah MVC无法访问生产服务器上的/ elmah?

我安装了elmah.mvc nuget软件包,并保留了默认配置,除非设置了发送电子邮件并将其插入SQL数据库的能力。

使用Visual Studio主机时,在本地计算机上,我可以打开我的应用程序并访问/ elmah可以查看错误报告。 但是,当我尝试在生产环境中访问/ elmah时,出现两个错误,首先出现elmah.axd服务器错误。 然后,在我的电子邮件(来自Elmah)中,我得到:

System.Web.HttpException: Server cannot set status after HTTP headers have been sent.

任何人都知道这里发生了什么以及如何解决? 谢谢。

根据以下答案,我尝试了以下操作:

elmah.axd

<handlers>
  <add name="elmah" verb="GET" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah"/>
</handlers>

并且在elmah.axd

<httpHandlers>
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>

我尝试将路径设置为elmah.axd~/elmah。所有路径仍然给出相同的错误,并且仍在本地运行,但不适用于生产环境。

编辑:当我远程访问服务器并通过浏览器访问服务器时,它实际上也起作用(不使用本地主机,而是实际站点地址)。 那我没有什么许可? 好像是在服务器级别。

trans by 2019-11-19T02:46:31Z

.net - 从Elmah发送电子邮件?

有人使用Elmah通过电子邮件发送例外吗? 我已经通过SQL Server设置了Elmah日志记录,并且可以通过Elmah.axd页面查看错误页面,但我无法使电子邮件组件正常工作。 这里的想法是获取电子邮件通知,以便我们可以更快地对异常做出反应。 这是我的web.config(省略了不必要的部分),所有敏感数据都被* * *取代。 即使我指定要连接的服务器,SMTP服务是否需要在本地计算机上运行?

<?xml version="1.0"?>
<configuration>
    <configSections>
        <sectionGroup name="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"/>
        </sectionGroup>
    </configSections>
    <appSettings/>
    <connectionStrings>
        <add name="elmah-sql" connectionString="Data Source=***;Initial Catalog=***;Persist Security Info=True;User ID=***;Password=***" />
    </connectionStrings>

    <elmah>
        <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="elmah-sql"   >
        </errorLog>
        <errorMail from="test@test.com"
           to="test@test.com"
           subject="Application Exception"
           async="false"
           smtpPort="25"
           smtpServer="***"
           userName="***"
           password="***">
        </errorMail>
    </elmah>

    <system.web>        
        <customErrors mode="RemoteOnly" defaultRedirect="CustomError.aspx">
            <error statusCode="403" redirect="NotAuthorized.aspx" />
            <!--<error statusCode="404" redirect="FileNotFound.htm" />-->
        </customErrors>
        <httpHandlers>
            <remove verb="*" path="*.asmx"/>
            <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
            <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
        </httpHandlers>
        <httpModules>
            <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
        </httpModules>
    </system.web>

</configuration>
trans by 2019-09-10T04:06:44Z

c# - log4net和ELMAH有什么区别?

有些人使用的是ELMAH而不是log4net。 是什么让它变得更好?

我在回答Stack Overflow问题时发现了ELMAH如何登录C#?

trans by 2019-07-12T20:00:33Z

c# - 如何使用ELMAH手动记录错误

是否可以使用ELMAH执行以下操作?

logger.Log(" something");

我正在做这样的事情:

try 
{
    // Code that might throw an exception 
}
catch(Exception ex)
{
    // I need to log error here...
}

ELMAH不会自动记录此异常,因为它已被处理。

trans by 2019-02-20T09:16:06Z

logging - 如何让ELMAH使用ASP.NET MVC [HandleError]属性?

我正在尝试使用ELMAH来记录我的ASP.NET MVC应用程序中的错误,但是当我在控制器上使用[HandleError]属性时,ELMAH在发生错误时不会记录任何错误。

正如我猜测它,因为ELMAH只记录未处理的错误,[HandleError]属性正在处理错误,因此无需记录它。

我如何修改或如何修改属性,以便ELMAH可以知道有错误并记录它..

编辑:让我确保每个人都理解,我知道我可以修改那个不是我问的问题的属性... ELMAH在使用handleerror属性时会被绕过,这意味着它不会看到有错误因为它被处理了 已经由属性...我要问的是有一种方法让ELMAH看到错误并记录它即使属性处理它...我搜索周围,没有看到任何方法调用强制它来记录 错误....

trans by 2019-01-23T00:04:48Z

1 共1页