Shared Assembly Location info

If I wanted to have my TEST, Pilot and Live all use the same shared assemblies

Would this be the way to do it?

i get an error about not finding the directory.

Updating Server Files.
Updating Client Files.
Configuring Site.

Application Server Setup Failed.
System.IO.DirectoryNotFoundException: C:\inetpub\wwwroot\ERP101500-PROD\Server\Assemblies\Assemblies
at System.Security.AccessControl.NativeObjectSecurity.CreateInternal(ResourceType resourceType, Boolean isContainer, String name, SafeHandle handle, AccessControlSections includeSections, Boolean createByName, ExceptionFromErrorCode exceptionFromErrorCode, Object exceptionContext)
at System.Security.AccessControl.FileSystemSecurity…ctor(Boolean isContainer, String name, AccessControlSections includeSections, Boolean isDirectory)
at System.Security.AccessControl.DirectorySecurity…ctor(String name, AccessControlSections includeSections)
at System.IO.DirectoryInfo.GetAccessControl()
at SetupEnvironment.Steps.FileHelper.SetUserAccess(DirectoryInfo directory, NTAccount user, FileSystemRights rights)
at SetupEnvironment.Steps.EnsureIisUserHasFileAccess.SetSecurityForAssemblyFileSystemDirectories(NTAccount iisUserAccount, XDocument document)
at SetupEnvironment.Steps.EnsureIisUserHasFileAccess.InnerRun()
at SetupEnvironment.StepBase.Run()

When I try to run it withoout the Assemblies

Validating Deployment Data.

Configuration Errors
The following issues were found. Please fix these and try again:

Cannot find file: C:\inetpub\wwwroot\ERP101500-PROD\Server\Epicor.Ice.dll


Shared Assembly Location. Select the Shared Assembly Location check box if you have a network load
balanced (NLB) environment. For example, you may have the Epicor ERP application installed on multiple
servers. You then must have a central directory that contains all the server assemblies and Business
Process Management (BPM) folders. If your server environment is set up this way, activate this check
You typically select this check box when you add your second and subsequent application servers. When
you install the first application server, the install process creates a Server/Assemblies folder. You then
create a Windows share for this folder. When you add more application servers, you select this check
box and then enter or select this Shared Assembly Location in the next field. Note that you can move
the Assemblies folder to some other disk location. However if you move this folder, you must manually
update the web.config file for the first application server so it points to this new location.
c. Shared Directory. Select the directory of the Shared Assembly Location. This directory can be a
network shared location or a local file path. Note that if your appservers will be on separate machines
you must select a network shared location.

Misunderstood the idea here…seems that I cannot use this at the time.

I doubt you’d want to use it, otherwise you couldn’t do proper testing with multiple patch levels. It seems like it’s more for making sure that multiple app servers connected to the same database are using the same assemblies.

1 Like

I wanted my Production Server to be able to have my Test/Live/Pilot/Demo to share the assemblies. I will have a separate Test Server to install patches.

They were telling me that it is for multiple Epicor servers connecting to 1 SQL DB Server
I want this:

Why do you have Test/Pilot/Demo in your production server though? Those should be in a different app server. And if they are in the same server, they shouldn’t share assemblies.

1 Like

Maybe our company wasnt using best practice or maybe this is best practice for E10?

We are on Progress E9 and currently we have one server and we have multiple databases (Live, Test, Training, Pilot).

In Vista/Vantage 8.03 to Epicor 9.05 we provided four appserver/database slots (Epicor905, EpicorTest905, EpicorPilot905 and EpicorTrain905) which all pointed to the same Epicor release of the server-side code because manually creating appserver/database slots was time consuming with the standard OE tooling. The best practice once a customer went live was to disable all non-production appserver/databases on the production server, and have a completely separate server for testing/pilot.

In Epicor 10.x+, the best practice is the same as earlier versions where only production activities should be on the production server. All testing should be completed on a separate server that isn’t involved in any production activity.

To duplicate the behavior of E905 and earlier in E10 on a non-production server, one’d have to go through the full database and appserver creation process for all four slots - but, the assemblies between them shouldn’t be shared as they are pointing to different databases. If an Epicor point release is applied to this non-production server with the four database/appserver slots, each individual appserver in the Epicor Administration Console would have to be upgraded to the new point release. The creation of new slots, or updating a large number of existing slots becomes much easier in 10.1.600 with all of the new command line options available.


I became the reluctant ERP Administrator and now am becoming the Reluctant DBA.

Thanks for clearing things up.