Serious IIS Application Pool recycling bug/design flaw

2 years ago
hkreklame wrote:
Is it still working fine?



Yes, no problems so far
2 years ago
angeor wrote:

If I disable shadow copy (UsePluginsShadowCopy -> false) then I get multiple exceptions from the plugins not being able to load plugin assemblies. For example Nivo slider widget cannot find Nop.Plugin namespace...


When disabling shadow copy and running the web site it seems that the Razor view engine is trying to find Razor precompiled Views. I assume that this is because it finds the deps file that is generated and moved to the Plugins folder. I had to use <GenerateDependencyFile>false</GenerateDependencyFile> in order to skip generation of the Deps file for every plugin project that contained some type of View.
Alternatively one could alter the Clear Plugin Assemblies task to delete the deps file too.

Nopcommerce 4.10 with Shadow copy disabled seems to be working right now, too soon to be 100% sure.

It would be awesome if it could work with shadow copy and "CopyLockedPluginAssembilesToSubdirectoriesOnStartup" enabled as it makes deployment of plugins somewhat easier.


Where did you use "<GenerateDependencyFile>false</GenerateDependencyFile>" ? In each plugins csproj? And where in the proj file?
2 years ago
hkreklame wrote:


Where did you use "<GenerateDependencyFile>false</GenerateDependencyFile>" ? In each plugins csproj? And where in the proj file?


In each plugins csproj:
  <PropertyGroup>
     …
    <GenerateDependencyFile>false</GenerateDependencyFile>
  </PropertyGroup>
2 years ago
We're encountering the same problem, specific to NopCommerce 4.1.  I've documented the issue here:

https://www.nopcommerce.com/boards/t/57966/500-internal-server-error-help-insight-nop41.aspx

Is there consensus on a production-ready solution for 4.1?  It appears that disabling shadow copy is the resolution.  Is there a way to disable shadowcopy without having to rebuild the application?  

It isn't clear in this thread whether 4.1 has a setting which can be manipulated in the application or whether code needs to be modified and recompiled - as it's mostly specific to NopCommerce 4.0.  

It also isn't clear whether disabling shadowcopy affects currently installed plugins.  User @angeor describes issues occurring with plugins and widgets here and here .
2 years ago
I've set the flag to false and so far so good but 36 hours isn't good enough for me to feel confident. I agree there doesn't seem to be a consensus solution for 4.1
2 years ago
As mentioned by @angeor here setting "UsePluginShadowCopy" to false in appsettings.json and restarting the application breaks the NopCommerce front end.  I've documented the error log output here:

https://www.nopcommerce.com/boards/t/57966/500-internal-server-error-help-insight-nop41.aspx#218882
2 years ago
Same error again and again. Also, I have already disabled IIS overlap recycling.
This errors happens more and more recently ... It is really problematic to have the website crashed multiple times a week ...
What is the way to fix this problem ? Has it been already found ... ?
2 years ago
In this thread it appears that there are three separate documented and independently verified and reproducible bugs, affecting Nopcommerce 4.0 and 4.1, all related to the primary issue:  

1. One where PluginShadowcopy crashes the app at random every 29 hours due to a conflict between Nopcommerce and IIS overlapping application pool recycling

2. One where UsePluginShadowcopy = False to resolve #1 breaks plugins with views due to missing references.

3. One where CopyLockedPluginAssembilesToSubdirectoriesOnStartup = True to resolve #1 throws a "System.UnauthorizedAccessException: Access to the path exception"

On Azure App Service where we have the application running, I have enabled autoheal.  It will catch when the server starts posting 500 errors and reboot the application.  This isn't a solution to the problem, it's a temporary fix so that the app doesn't remain in crashed state for hours at a time.  

Please note these unresolved bugs cause significant negative impact to SEO and SEM in production environments, in addition to poor customer experience and lost revenue.
2 years ago
alldogsoffroad wrote:
In this thread it appears that there are three separate documented and independently verified and reproducible bugs, affecting Nopcommerce 4.0 and 4.1, all related to the primary issue:  

1. One where PluginShadowcopy crashes the app at random every 29 hours due to a conflict between Nopcommerce and IIS overlapping application pool recycling

2. One where UsePluginShadowcopy = False to resolve #1 breaks plugins with views due to missing references.

3. One where CopyLockedPluginAssembilesToSubdirectoriesOnStartup = True to resolve #1 throws a "System.UnauthorizedAccessException: Access to the path exception"

On Azure App Service where we have the application running, I have enabled autoheal.  It will catch when the server starts posting 500 errors and reboot the application.  This isn't a solution to the problem, it's a temporary fix so that the app doesn't remain in crashed state for hours at a time.  

Please note these unresolved bugs cause significant negative impact to SEO and SEM in production environments, in addition to poor customer experience and lost revenue.


We had the exact same problems, and we ended up with the same "solution". We have given up using web apps and nopcommere 4.1 for now.
2 years ago
I've created an issue specific to 4.1 here under Bug Reports:

https://www.nopcommerce.com/boards/t/58070/bug-relating-to-overlapping-application-pool-recycling-in-iis-and-nopcommerce-41-usepluginshadowcopy.aspx