gpt4 book ai didi

c# - 将 log4net 包含到使用 .net 4.0 构建的 .net Web 应用程序中

转载 作者:行者123 更新时间:2023-11-30 19:33:38 30 4
gpt4 key购买 nike

我看到网络上和 stackoverflow 上有很多很多关于此的讨论,但我没有找到任何方法来解决我的问题。我现在已经尝试了 3 件事,但都没有用:

  1. 我只是试图从 log4net zip 文件夹中获取 log4net.dll whos,所有源代码都在 bin 目录中。 结果:没有编译错误,但我的 SmtpAppender 只是不发送错误电子邮件。
  2. 所以,我从网上搜索发现它可以与log4net.dll编译的版本有关。这很奇怪,但无论如何,我遇到了一个错误,要求我为程序集生成一个强 key ,这就是我所做的并编译,所以我发布了这个项目并将 log4net.dll 添加到我的项目引用中。 结果:没有编译错误,但在尝试从 Global.asax 行配置时出现 1 个错误:

    protected void Application_Start(object sender, EventArgs e) {
    log4net.Config.XmlConfigurator.Configure();
    }

    这是错误:(参见#Ref1)

  3. 所以,我再次从某个 Ahmed Fouad 那里找到了这个线程,据我说,他希望工作正常。 Here's the thread .我已经按照他说的做了所有事情,但我仍然遇到同样的错误 (#Ref1)。

有人成功地将 SmtpAppender 配置到使用 Framework 4.0 的 C# VS.net Web 应用程序中吗?

引用1

Inheritance security rules violated while overriding member: 'log4net.Util.ReadOnlyPropertiesDictionary.GetObjectData(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)'. Security accessibility of the overriding method must match the security accessibility of the method being overriden


其他信息(评论 #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

[...]
}

最佳答案

找到它!我读过这篇文章 Log4Net and .NET 4.0 RC它只是解决它!

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

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

  (#)if (!NETCF && !NET_4_0)
//
// If log4net is strongly named it still allows partially trusted callers
//
[assembly: System.Security.AllowPartiallyTrustedCallers]
(#)endif

这不好!!您必须删除“!NET_4_0”并用此行替换 [assembly]:

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

SMTPAppender 和 FileAppender 现在都可以正常工作了!

关于c# - 将 log4net 包含到使用 .net 4.0 构建的 .net Web 应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3344580/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com