Sure, I use Visual Studio 2019 Community edition as my IDE which has a
publish tool to deploy console and web applications. I then push my
deployment files to github and have a scheduled task on the web server that
pulls down the latest commits from the github server.

Joseph A. Mitola, Information Systems Analyst
University of California, Berkeley
IST - Architecture, Platforms & Integration
2195 Hearst Avenue, 250-29
Berkeley, CA 94720-4876
510-508-4443
jmit...@berkeley.edu

On Tue, Sep 8, 2020, 9:59 PM Davyd McColl <dav...@gmail.com> wrote:

> Thanks! I'm surprised that you had the experience you had, because those
> environments are very similar to ours at work. May I ask what process you
> use to deploy? We use Octopus.
>
> At least if I see the same odd behaviour, I have one more idea to check (:
>
> -d
>
> On September 9, 2020 00:02:32 "Joseph A. MITOLA" <jmit...@berkeley.edu>
> wrote:
>
>> OK, sure. No webforms. I am maintaining two web applications, one MVC 5
>> app and one Web API, both running on .Net framework 4.6 and both now
>> successfully using log4net 2.0.9
>>
>>
>>
>>
>>
>> *Joseph A. Mitola*, *Information Systems Analyst*
>> University of California, Berkeley
>> IST - Enterprise Applications
>> 2195 Hearst Avenue, 250-29
>> Berkeley, CA 94720-4876
>> 510-508-4443
>> jmit...@berkeley.edu
>>
>>
>>
>>
>>
>> *From: *Davyd McColl <dav...@gmail.com>
>> *Sent: *Tuesday, September 8, 2020 1:18 PM
>> *To: *Joseph A. MITOLA <jmit...@berkeley.edu>
>> *Cc: *dev@logging.apache.org
>> *Subject: *RE: issues with log4net 2.0.9 under IIS for projects using
>> .net framework 4.5+
>>
>>
>>
>> Joseph
>>
>> Glad you could figure it out! Sounds like your app is webforms? If not,
>> if appreciate as much info as you can divulge. I ask because I didn't write
>> asmdeps on a whimsey - I'm genuinely interested in debugging strange
>> situations, so the more info I have to help the next person, the better.
>>
>> Thanks
>> -d
>>
>> On September 8, 2020 20:32:25 "Joseph A. MITOLA" <jmit...@berkeley.edu>
>> wrote:
>>
>> Thanks Davyd,
>>
>>
>>
>> I found the issue.
>>
>>
>>
>> First, I had to uninstall the “Microsoft Monitoring Agent” on the windows
>> server because for some reason when log4net was causing the IIS app pool to
>> crash, it also crashed the monitoring agent which prevented any log4net
>> internal debug logs to write to the log file.
>>
>>
>>
>> Once the monitoring agent was uninstalled, re-launching the application
>> generated a log4net internal debug file. I noticed the first line in the
>> file was still referencing version 2.0.8 because it was loading it from the
>> .Net framework temporary libraries located in:
>> C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files
>>
>>
>>
>> I simply manually deleted the temporary files, re-started IIS and
>> launched the application. This time everything worked and in the log4net
>> internal debug file it was now referencing version 2.0.9.
>>
>>
>>
>> Very strange that I had to run these steps in order to clear the previous
>> version from the cache but at least it’s working now. Also, I checked “auto
>> generate binding redirects” in visual studio which automatically generates
>> these assembly references.
>>
>>
>>
>> Thanks for all your help,
>>
>> Joseph
>>
>>
>>
>>
>>
>> *Joseph A. Mitola*, *Information Systems Analyst*
>> University of California, Berkeley
>> IST - Enterprise Applications
>> 2195 Hearst Avenue, 250-29
>> Berkeley, CA 94720-4876
>> 510-508-4443
>> jmit...@berkeley.edu
>>
>>
>>
>>
>>
>> *From: *Davyd McColl <davyd.mcc...@codeo.co.za>
>> *Sent: *Tuesday, September 8, 2020 11:15 AM
>> *To: *Joseph A. MITOLA <jmit...@berkeley.edu>
>> *Cc: *dev@logging.apache.org
>> *Subject: *RE: issues with log4net 2.0.9 under IIS for projects using
>> .net framework 4.5+
>>
>>
>>
>> Joseph
>>
>> Let's try figuring out the root cause. I was quite hasty with the rebind
>> idea, though it may ultimately solve the problem, if my hunch is right.
>>
>> An assembly rebind is a bit of configuration added to the app.config or
>> web.config of a .net application that can direct it, at runtime, to change
>> its behavior slightly when attempting to load a dependant assembly:
>>
>>
>> https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/redirect-assembly-versions
>>
>> For example, if you had some dependency A which was built against log4net
>> 2.0.8 and you upgraded your web app to 2.0.9, at runtime, your web app
>> would be happy, but that dependency wouldn't. We can force the hand of the
>> assembly resolver to tell it, basically, "when someone asks for log4net
>> 2.0.8, give them this assembly here (2.0.9)". If nothing too drastic has
>> changed in the version increment, all will go well.
>>
>> This is how I tested 2.0.9 in my work project. We have an intermediate
>> dependency which abstracts logging (so we can mock out the logger in
>> testing, and have the freedom to use another logging framework). That
>> dependency wants 2.0.8 (my PR to update is still in review) and my web app
>> is updated to 2.0.9. So I use an assembly rebind to convince the runtime to
>> simply provide the 2.0.9 assembly to to intermediate.
>>
>> asmdeps may show you what's going on here. Assuming you have an asp.net
>> mvc app, point asmdeps at the primary assembly (eg Website.dll) and see the
>> resolved dependency tree. Adding the -p flag will tell you exactly which
>> files would be loaded. A missing or mismatched assembly would become
>> evident. Since asmdeps relies on the inbuilt assembly resolution
>> mechanisms, it will also be "fooled" by a rebind, so if a rebind fixes the
>> issue, asmdeps should show no broken dependency.
>>
>> -d
>>
>> On September 8, 2020 19:31:45 "Joseph A. MITOLA" <jmit...@berkeley.edu>
>> wrote:
>>
>> I tried uninstalling and re-installing, no effect. I don’t know what you
>> mean by rebind?
>>
>>
>>
>> *Joseph A. Mitola*, *Information Systems Analyst*
>> University of California, Berkeley
>> IST - Enterprise Applications
>> 2195 Hearst Avenue, 250-29
>> Berkeley, CA 94720-4876
>> 510-508-4443
>> jmit...@berkeley.edu
>>
>>
>>
>>
>>
>> *From: *Davyd McColl <davyd.mcc...@codeo.co.za>
>> *Sent: *Tuesday, September 8, 2020 9:52 AM
>> *To: *Joseph A. MITOLA <jmit...@berkeley.edu>
>> *Cc: *dev@logging.apache.org
>> *Subject: *RE: issues with log4net 2.0.9 under IIS for projects using
>> .net framework 4.5+
>>
>>
>>
>> Have you tried an assembly rebind to force resolution to 2.0.9?
>>
>> -d
>>
>> On September 8, 2020 18:00:45 "Joseph A. MITOLA" <jmit...@berkeley.edu>
>> wrote:
>>
>> Hi Davyd,
>>
>>
>>
>> The weird thing is everything had been working fine with same
>> configuration, framework version 4.6, etc. and all I did was update the
>> nuget package for log4net from 2.0.8 to 2.0.9. After that IIS w3wp process
>> along with perfmon.dll process on the deployment server crashed when the
>> application was launched. No error logs were reported even when I set the
>> internal debug to true, nothing. But then, if I revert the nuget package
>> back to 2.0.8, everything is normal again including the logs with the
>> internal debugging turned on. So, it makes me think that maybe the 2.0.9
>> version is missing a dependency library or something but I couldn't find
>> anything online to that effect.
>>
>>
>>
>> Here is my config, I'm using RollingFileAppender, AdoNetAppender, and
>> SmtpAppender
>>
>>
>>
>> <log4net>
>>
>>   <appender name="LogFileAppender"
>> type="log4net.Appender.RollingFileAppender">
>>
>>     <file type="log4net.Util.PatternString"
>> value="C:/logs/contentapps-proxy_%date{yyyyMMdd}.log" />
>>
>>     <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
>>
>>     <rollingStyle value="Date" />
>>
>>     <datePattern value="yyyyMMdd" />
>>
>>     <appendToFile value="true" />
>>
>>     <maxSizeRollBackups value="14" />
>>
>>     <maximumFileSize value="1024KB" />
>>
>>     <layout type="log4net.Layout.PatternLayout">
>>
>>       <param name="ConversionPattern" value="%-5p %date{yyyy-MM-dd
>> hh:mm:ss tt} [%thread]  %m%n" />
>>
>>     </layout>
>>
>>     <preserveLogFileNameExtension value="true" />
>>
>>   </appender>
>>
>>   <appender name="CustomAdoNetAppender"
>> type="ContentAppsProxy.Filters.CustomAdoNetAppender">
>>
>>     <bufferSize value="1" />
>>
>>     <connectionType
>> value="System.Data.Entity.Infrastructure.SqlConnectionFactory,
>> EntityFramework" />
>>
>>     <commandText value="INSERT INTO Log4Net_Error
>> ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date,
>> @thread, @log_level, @logger, @message, @exception)" />
>>
>>     <parameter>
>>
>>       <parameterName value="@log_date" />
>>
>>       <dbType value="DateTime" />
>>
>>       <layout type="log4net.Layout.RawTimeStampLayout" />
>>
>>     </parameter>
>>
>>     <parameter>
>>
>>       <parameterName value="@thread" />
>>
>>       <dbType value="String" />
>>
>>       <size value="255" />
>>
>>       <layout type="log4net.Layout.PatternLayout">
>>
>>         <conversionPattern value="%thread" />
>>
>>       </layout>
>>
>>     </parameter>
>>
>>     <parameter>
>>
>>       <parameterName value="@log_level" />
>>
>>       <dbType value="String" />
>>
>>       <size value="50" />
>>
>>       <layout type="log4net.Layout.PatternLayout">
>>
>>         <conversionPattern value="%level" />
>>
>>       </layout>
>>
>>     </parameter>
>>
>>     <parameter>
>>
>>       <parameterName value="@logger" />
>>
>>       <dbType value="String" />
>>
>>       <size value="255" />
>>
>>       <layout type="log4net.Layout.PatternLayout">
>>
>>         <conversionPattern value="%logger" />
>>
>>       </layout>
>>
>>     </parameter>
>>
>>     <parameter>
>>
>>       <parameterName value="@message" />
>>
>>       <dbType value="String" />
>>
>>       <size value="4000" />
>>
>>       <layout type="log4net.Layout.PatternLayout">
>>
>>         <conversionPattern value="%message" />
>>
>>       </layout>
>>
>>     </parameter>
>>
>>     <parameter>
>>
>>       <parameterName value="@exception" />
>>
>>       <dbType value="String" />
>>
>>       <size value="2000" />
>>
>>       <layout type="log4net.Layout.ExceptionLayout" />
>>
>>     </parameter>
>>
>>   </appender>
>>
>>   <appender name="CustomSmtpAppender"
>> type="ContentAppsProxy.Filters.CustomSmtpAppender">
>>
>>     <bufferSize value="512" />
>>
>>     <lossy value="false" />
>>
>>     <evaluator type="log4net.Core.LevelEvaluator">
>>
>>       <threshold value="Error" />
>>
>>     </evaluator>
>>
>>     <layout type="log4net.Layout.PatternLayout">
>>
>>       <conversionPattern value="%message" />
>>
>>     </layout>
>>
>>     <priority value="High" />
>>
>>   </appender>
>>
>>
>>
>>   <root>
>>
>>     <level value="ALL" />
>>
>>     <appender-ref ref="LogFileAppender" />
>>
>>     <appender-ref ref="CustomAdoNetAppender" />
>>
>>     <appender-ref ref="CustomSmtpAppender" />
>>
>>   </root>
>>
>> </log4net>
>>
>>
>>
>>
>>
>> *Joseph A. Mitola*, *Information Systems Analyst*
>> University of California, Berkeley
>> IST - Enterprise Applications
>> 2195 Hearst Avenue, 250-29
>> Berkeley, CA 94720-4876
>> 510-508-4443
>> jmit...@berkeley.edu
>>
>>
>>
>>
>>
>> *From: *Davyd McColl <davyd.mcc...@codeo.co.za>
>> *Sent: *Tuesday, September 8, 2020 12:08 AM
>> *To: *jmit...@berkeley.edu
>> *Cc: *dev@logging.apache.org
>> *Subject: *RE: issues with log4net 2.0.9 under IIS for projects using
>> .net framework 4.5+
>>
>>
>>
>> Hi Joseph
>>
>>
>>
>> I've performed a (rather belated) upgrade to log4net 2.0.9 on a work
>> project targeting net462 and, apart from having to perform some assembly
>> rebinds to handle dependencies which expect log4net 2.0.8, it's working
>> fine with an ado.net appender and a rolling log file appender, so I'd
>> really like to know more about your environment & configuration.
>>
>>
>>
>> -d
>>
>>
>>
>>
>>
>>
>>
>>
>>
>

Reply via email to