Esri / arcgis-enterprise-sdk-resources

Apache License 2.0
20 stars 23 forks source link

ClassFactory cannot supply requested class #1

Closed sandeepku closed 2 years ago

sandeepku commented 4 years ago

I am getting an error "0x80040111: ClassFactory cannot supply requested class" while attaching SOI to the MapServer.

System Information:

  1. ArcGIS Server 10.7.1 with .NET Extension Support
  2. .Net Framework Version 4.7.3062.0.
  3. Used the ArcGIS Enterprise SDK 10.7.1 to create the SOI

Have tried the following:

  1. Installed a .net version of the SOI -- same error
  2. Installed a java version of the SOI -- same error
  3. Installed Visual Studio...and uninstalled it and redeployed the SOI -- works fine

Few messages in the ArcGIS Server Log

Failed to initialize server object 'Online/Online': 0x80040111: ClassFactory cannot supply requested class

AutomationException: ClassFactory cannot supply requested class

Exception in preStart(); in com.esri.arcgis.discovery.admin.rediscovery.actors.GenericServerObjectActor for service: Online.Online.MapServer

hanhansun commented 4 years ago

These samples are compiled with 10.8 Enterprise SDK (release in Jan, 2020) and they are not supported with previous versions of ArcGIS Server.

If you want to try the 10.7.x sample SOEs/SOIs, you can download them from this link.

Alternatively, you can recompile these samples with your version of SDK. Make sure the ESRI libraries are referenced correctly and the .csproj and Properties/AssemblyInfo.cs point to your version of Server ("10.7" instead of "10.8"), and recompile them.

sandeepku commented 4 years ago

I agree that, earlier i did not pick up the 10.7.1 samples.But still getting the same issue.

I have also posted a geonet post regarding this. https://community.esri.com/thread/244135-unable-to-deploy-soi-getting-classfactory-cannot-supply-requested-class You may close this issue if you think that, this has nothing to do with the SOE /SOI, but i still bll've there an installation component which is missing. Which magically works when i install Visual Studio in the machine, but that is not an option for production machines

xzhangva commented 4 years ago

if you use 10.7.x, change TargetVersion = "10.8" to TargetVersion = "10.8" in AssemblyInfo.cs and recompile it. It works for me.

hanhansun commented 3 years ago

This error normally indicates three potential causes: 1). the Server may lack required .NET framework. 2). the SOI/SOE is not compiled properly against the Server environment. 3). there is a software bug.

Before jumping into any conclusion, make sure you test the following steps: 1). Make sure server has the supported .NET framework installed. Sometimes a restart of the machine or ArcGIS Server is required if you just installed the .NET framework. 2). Try creating a new SOE/SOI from template, building it successfully, and then enabling the SOE/SOI with the service. If this works, then it's very likely the specific SOE/SOI that fails to be enabled has some problem and your Server environment should be good. In this case, you can try further recompiling the SOE/SOI that fails using the same version of Enterprise SDK as your ArcGIS Server version, and remember to resolve any compile errors or references that are not set properly. Once the project is rebuilt, you should see a .soe file successfully generated, which should be able to be enabled with a service successfully. Note that it's not necessary to build the SOE/SOI on the same machine where ArcGIS Server is installed, and the server machine doesn't need Visual Studio installed. SOE/SOI should work on ArcGIS Server without Visual Studio installed on the server machine.

If you think you are running into a software bug, please reach out to Tech Support and have a bug submitted.

In this issue, we couldn't reproduce the failure. Visual Studio is not required on the server machine and it shouldn't be a magic fix for the issue. If you believe this can be a software bug more related to your specific environment, contact Tech Support to have a bug logged with a reproducible case documented.