Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.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
C# 将log4net包含到使用.NET4.0构建的.NETWeb应用程序中_C#_Asp.net_.net 4.0_Log4net - Fatal编程技术网

C# 将log4net包含到使用.NET4.0构建的.NETWeb应用程序中

C# 将log4net包含到使用.NET4.0构建的.NETWeb应用程序中,c#,asp.net,.net-4.0,log4net,C#,Asp.net,.net 4.0,Log4net,我在网上看到了很多关于这个的帖子,也在stackoverflow中,但是我没有找到任何方法来解决我的问题。我现在已经尝试了3种方法,但都不起作用: 我只是尝试从log4net zip文件夹中获取log4net.dll,其中包含bin目录中的所有源代码结果:没有编译错误,但我的SmtpAppender不会发送错误电子邮件 所以,我从网上搜索发现它可能与log4net.dll编译的版本有关。这是wierd,但无论如何,我遇到了一个错误,他要求我为程序集生成一个强键,这就是我所做的和编译的,所以我发布

我在网上看到了很多关于这个的帖子,也在stackoverflow中,但是我没有找到任何方法来解决我的问题。我现在已经尝试了3种方法,但都不起作用:

  • 我只是尝试从log4net zip文件夹中获取log4net.dll,其中包含bin目录中的所有源代码结果:没有编译错误,但我的SmtpAppender不会发送错误电子邮件
  • 所以,我从网上搜索发现它可能与log4net.dll编译的版本有关。这是wierd,但无论如何,我遇到了一个错误,他要求我为程序集生成一个强键,这就是我所做的和编译的,所以我发布了这个项目,获取log4net.dll并将其添加到我的projet的refereces中结果:没有编译错误,但尝试从Global.asax行配置时出现1个错误:

    protected void Application_Start(object sender, EventArgs e) {
        log4net.Config.XmlConfigurator.Configure();
    }
    
    错误如下:(参见参考文献1)

  • 所以,再一次,我从某个艾哈迈德·福阿德那里发现了这条线索,据我所说,他希望工作顺利。他说的我都做了,但我还是犯了同样的错误(参考文献1)
  • 是否有人成功地使用Framework4.0将SmtpAppender配置为C#VS.net Web应用程序

    参考文献1 重写成员时违反了继承安全规则:“log4net.Util.ReadOnlyPropertiesDictionary.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)”。重写方法的安全可访问性必须与被重写方法的安全可访问性匹配


    其他信息(审查#1) 我刚试过别的东西。我已经打开了使用VS.net 2010转换的log4net应用程序的完整.sln,添加了一个看起来与我的应用程序完全相同的web项目,但在本例中,我能够调试log4net库。以下是它失败的地方:

    // If we could not find an alias
    if (rep == null)
    {
        LogLog.Debug("DefaultRepositorySelector: Creating repository [" + repositoryName + "] using type [" + repositoryType + "]");
    
        // Call the no arg constructor for the repositoryType
        HERE -> rep = (ILoggerRepository)Activator.CreateInstance(repositoryType); <-- HERE
    
        [...]
    }
    
    //如果找不到别名
    if(rep==null)
    {
    调试(“DefaultRepositorySelector:使用类型[“+repositoryType+”]”创建存储库[“+repositoryName+”];
    //调用repositoryType的无参数构造函数
    
    这里->rep=(ILoggerRepository)Activator.CreateInstance(repositoryType);找到它!!我读了这篇文章,它只是简单地解决了它

    在我的第一篇帖子(问题)中,在我尝试的步骤3中,它说要替换AssemblyInfo.cs中的某些内容:

    他说:“在AssemblyInfo.cs中,将部分安全性的部分修改为如下所示:

    这不好!!您必须删除“!NET\u 4\u 0”并用以下行替换[assembly]:

      [assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level1)]
    

    SMTPAppender和FileAppender现在对我来说都可以正常工作了!

    在部分信任4.0网站下使用log4net v1.2.11仍然会收到此错误消息,例如:

    <system.web>
        <trust level="Medium" />
    
    
    
    如果不需要部分信任,则将其更改为:

    <system.web>
        <trust level="Full" />
    
    
    

    停止错误。

    请注意,我没有忘记将以前放入的所有内容都放入web.config.Debug(和/或发行版)中.但是,它会错过一些东西吗?如果我们使用.net 3,Web.Config会有很大的不同。*如果您使用更简单的文件追加器,日志记录会起作用吗?是的,文件追加器会引发相同的错误。但是请看我的主要帖子,我刚刚得到一些信息。版本1.2.11支持.net 4…谢谢Stephan。你说得对,Log4net现在支持.net 4。但是我刚发布的时候,它就不是了。不过多亏了指定!(:Hey Will!“ol'friend”,没那么多,你知道我还年轻;o)
    <system.web>
        <trust level="Full" />