log4net - Les annexes ne fonctionnent pas dans IIS7.5

Je suis capable d'écrire dans un fichier journal à l'aide de log4net et Cassini/IIS serveur de dev, mais lorsque j'utilise IIS7.5, je ne peux pas écrire dans un fichier.

D'abord, j'ai eu une exception de sécurité, j'ai donc ajouté requirePermission="false" et l'exception est allé loin, mais aucun fichier n'a été créé.

Le niveau de confiance est plein selon IISM.

Je ne peux pas le faire fonctionner sur ma machine, je me demande ce qui va se passer quand je transfert un fournisseur de services internet (discountASP).

Voici la log4net de l'installation:

<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>

C#

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

Toute indices?

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

EDIT:

J'ai utilisé le test web app, qui a couru dans les Cassini et il a couru dans IIS7.5 et il a travaillé si il y a quelque chose de spécifique pour mon application web qui empêche log4net en cours d'exécution. Il y a
beaucoup passe en elle, en apparence, la mise en cache de sortie, AJAX Control Toolkit, l'authentification par formulaires, ssl, réécriture d'url, etc... Autre que l'ajout de chacun de ceux sur l'application de test, est-il un meilleur moyen de comprendre ce qui est la cause de log4net de travail?

Mise à JOUR:

J'ai utilisé le AdoNetAppender de rester à l'écart à partir du fichier des problèmes d'autorisation et reçois toujours le même résultat. Le AdoNetAppender travaille pour l'application de test en cours d'exécution sur Cassini et IIS, mais il ne fonctionne pas sur mon application web. L'obtention de l'exception suivante:

Système.De sécurité.SecurityException: Demande d'autorisation de type 'System.La Configuration.ConfigurationPermission, Système.La Configuration... " a échoué.

Mise à JOUR 2:
Je me suis trompé à ce que le test webapp fileAppender travaillé dans IIS7.5. C'est ce qui se passe: Le test webapp fileAppender et AdoDotNetAppender travaillent tous les deux dans Cassini/IIS dev, mais pas dans IIS7.5. Donc, je pense que c'est IIS qui est le problème, pas de ma webapp.

Note. Je suis en cours d'exécution VS2008 en tant qu'Admin, mais je suis connecté à Windows 7 comme une nonAdmin. Aussi, je suis sous Windows 7 édition familiale Premium, Professionnel.

J'ai accordé RÉSEAU de SERVICE de toutes les autorisations pour le répertoire racine du site web et toujours pas de fichier créé. A également donné à tout le monde d'autorisation, pas de fichier.

Depuis le adoDotNetAppender ne fonctionne pas non plus (mais n'en dev IIS), je pense qu'il y a peut être une autre question en plus pour les autorisations de fichier.

Mise à JOUR 3:

Je l'ai eu à travailler pour la FileAppender sur IIS7. Si j'ajoute ceci:

<identity impersonate="true"
    userName="zzz"
    password="yyy" />

et si l'utilisateur est un administrateur, il fonctionne. Si c'est moi, pas un admin, il ne le fait pas. C'est donc un problème d'autorisations. Mais je n'accorder à TOUS les droits sur le répertoire dans lequel le fichier est écrit à l'avant et ça ne fonctionne pas, donc il y a un paramètre d'autorisation ailleurs. Aussi, tandis que le FileAppender travaille maintenant avec l'usurpation d'identité, la AdoNetAppender stil n'est pas dans IIS7. J'ai essayé d'ajouter:

<securityContext type="log4net.Util.WindowsSecurityContext">
    <userName value="zzz" />
    <password value="yyy" />
    <domain value="aaa" />
</securityContext>

à la AdoNetAppender section, mais encore silencieuse d'échouer.

J'ai ajouté une prime pour toute personne qui peut m'aider à obtenir le AdoNetAppender de travail avec IIS7.5.

Mise à JOUR 4:

J'ai finalement obtenu une prise de la trace de la pile. Ici, il est:

log4net:ERROR [AdoNetAppender] Failed in DoAppend
System.Security.SecurityException: Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
       at log4net.Util.LogicalThreadContextProperties.GetProperties(Boolean create)
       at log4net.Core.LoggingEvent.CreateCompositeProperties()
       at log4net.Core.LoggingEvent.CacheProperties()
       at log4net.Core.LoggingEvent.FixVolatileData(FixFlags flags)
       at log4net.Core.LoggingEvent.set_Fix(FixFlags value)
       at log4net.Appender.BufferingAppenderSkeleton.Append(LoggingEvent loggingEvent)
       at log4net.Appender.AppenderSkeleton.DoAppend(LoggingEvent loggingEvent)
The action that failed was:
LinkDemand
The type of the first permission that failed was:
System.Security.Permissions.SecurityPermission
The Zone of the assembly that failed was:
MyComputer

J'ai eu le générateur de profils SQL et rien fait à SQL Server. Aussi, le compte SQL Server dispose des droits appropriés pour faire l'insert. Aussi, j'ai enlevé le SecurityContext section log4net ne reconnaissent pas la partie.

source d'informationauteur Steve