相关疑难解决方法(0)

log4net - Aplder在IIS7.5中不起作用

我能够使用log4net和Cassini/IIS开发服务器写入日志文件,但是当我使用IIS7.5时,我无法写出文件.

最初,我得到了一个安全异常,所以我添加requirePermission="false"了异常消失但没有创建文件.

根据IISM,信任级别已满.

我不能在我自己的机器上工作,我想知道当我转移到ISP(discountASP)时会发生什么.

这是log4net设置:

<configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" requirePermission="false"  />
</configSections>

<log4net>
    <appender name="FileAppender" type="log4net.Appender.FileAppender">
        <file value="log-file.txt" />
        <appendToFile value="true" />
        <encoding value="utf-8" />
        <layout type="log4net.Layout.SimpleLayout" />
    </appender>
    <root>
        <level value="DEBUG" />
        <appender-ref ref="FileAppender" />
    </root>
</log4net>
Run Code Online (Sandbox Code Playgroud)

C#

log4net.Config.XmlConfigurator.Configure();
ILog Log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
Log.Info("This is a test");
Run Code Online (Sandbox Code Playgroud)

有线索吗?

ASP.NET 3.5,VS2008,Windows 7,IIS7.5,log4net 1.2.10

编辑:

我使用在Cassini中运行的测试Web应用程序并在IIS7.5中运行它,因此我的Web应用程序特有的东西阻止了log4net的运行.其中有很多内容,ELMAH,输出缓存,AJAX控件工具包,表单身份验证,ssl,url重写等...除了将每个都添加到测试应用程序之外,有没有更好的方法来找出导致的原因log4net工作?

更新:

我使用AdoNetAppender远离文件权限问题,但仍然得到相同的结果.AdoNetAppender适用于在Cassini和IIS上运行的测试应用程序,但它不适用于我的Web应用程序.获得以下异常:

System.Security.SecurityException:对"System.Configuration.ConfigurationPermission,System.Configuration ..."类型的权限的请求失败.

更新2: 我错误地认为测试webapp fileAppender在IIS7.5中工作.这就是:测试webapp fileAppender和AdoDotNetAppender都在Cassini/IIS开发中工作,但在IIS7.5中不工作.所以我认为这是IIS的问题,而不是我的webapp.

注意.我作为管理员运行VS2008,但我作为nonAdmin登录到Windows 7.此外,我正在运行Windows 7 Home Premium,而非Professional.

我向网络根目录授予了NETWORK SERVICE完全权限,但仍然没有创建文件.还给了每个人完全许可,没有文件.

由于adoDotNetAppender不起作用(但在开发IIS中也没有),我认为除了文件权限之外可能还有另外一个问题.

更新3:

我让它为IIS7上的FileAppender工作.如果我添加这个:

<identity impersonate="true"
    userName="zzz"
    password="yyy" …
Run Code Online (Sandbox Code Playgroud)

iis log4net asp.net-3.5 visual-studio-2008 windows-7

15
推荐指数
2
解决办法
2万
查看次数

Log4net在Debug中工作但在Release版本中失败

我一直在使用log4net,所以我不是很新的.但这是我在Windows Server 2008 R2 64位计算机上部署的第一个更大的.NET 4.0解决方案.

当然,我先搜索并找到类似的主题.一个主题听起来完全相同 - 运行在发布模式下构建的.Net 4.0 Windows应用程序时,log4net不会记录 - 但我的问题仍然不同.

我的解决方案的一部分是使用log4net的控制台应用程序.一切正常,直到我切换到发布版本.在我的电脑上测试期间它仍然正常.但是在服务器端,log4net将不再起作用.

所以我启用了log4net内部调试.这指向存储库冲突.我从来没有深入到log4net深入了解它.但问题似乎是它首先为域程序集(CRMFacade.Domain)创建一个存储库,然后尝试为控制台应用程序(CRMFacade.DataImport)创建一个存储库.此操作失败,因为已存在默认存储库:

log4net: log4net assembly [log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821]. Loaded from [Global Assembly Cache]. (.NET Runtime [4.0.30319.225] on Microsoft Windows NT 6.1.7601 Service Pack 1)
log4net: DefaultRepositorySelector: defaultRepositoryType [log4net.Repository.Hierarchy.Hierarchy]
log4net: DefaultRepositorySelector: Creating repository for assembly [CRMFacade.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]
log4net: DefaultRepositorySelector: Assembly [CRMFacade.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null] Loaded From [C:\Program Files (x86)\CRMFacade.DataImport\CRMFacade.Domain.dll]
log4net: DefaultRepositorySelector: Assembly [CRMFacade.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null] does not have a RepositoryAttribute specified.
log4net: DefaultRepositorySelector: Assembly …
Run Code Online (Sandbox Code Playgroud)

log4net .net-4.0 windows-server-2008-r2 c#-4.0

14
推荐指数
2
解决办法
7991
查看次数

Log4Net不会在发布模式下写入日志 - 控制台应用程序

我有一个控制台应用程序,并有一个包装Log4Net方法的类库.现在,当在调试模式下运行应用程序时,它会写入日志,但是当它在发布模式下构建时,它不会写入日志文件.这会是什么解决方案?示例代码和配置文件如下所示

我的开发环境是

  • Visual Studio 2013和.NET Framework 4.5

控制台应用

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            log4net.GlobalContext.Properties["LogFileName"] = "TestLogin.txt";
            Logger log = new Logger(typeof(Program));
            log.Info("Logging is enabled!!");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

控制台应用程序中的App.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
    <log4net>
      <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
        <file type="log4net.Util.PatternString" value ="%property{LogFileName}"/> 
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date [%thread] %level  - %message%newline%exception" />
        </layout>
      </appender>
      <root>
        <level value="ALL" />
        <appender-ref ref="RollingFileAppender" />
      </root>
    </log4net>
</configuration> …
Run Code Online (Sandbox Code Playgroud)

.net c# log4net

4
推荐指数
2
解决办法
9092
查看次数