Hello all,
I have been attempting to publish services from a local ArcGIS desktop environment to a remote ArcGIS Server site. The server has no desktop installed, and has a different drive letter used for storing date than on my local machine (D:\Data on the local machine, E:\Data on the remote machine).
Most of my data are stored in two enterprise geodatabases. In the data folder (on both machines), I have two SDE connection files...one for each enterprise GDB. I have registered the enterprise geodatabases on the server, and also registered a folder that refers to the D:\Data location on the local/publisher machine and the E:\Data folder on the server. These all validate fine.
I can publish maps that rely on data in the enterprise geodatabases. No problem.
When I try to publish some geoprocessing models, it initially seems to work fine. The service editor's analyzer reports no issues related to unregistered data sources, and the services are successfully published to the server without having to package any data. But then I run into issues where the models rely on feature classes stored in the enterprise geodatabases. If I publish just one model to a new gp server, it might work fine. I'll then delete the gp service, and publish two or more models as tasks in a single gp server (including a model that may have worked previously). Once I start doing that, I'll start to get errors such as the following:
Code:
Error executing tool.: The value does not exist. ERROR 000732: Erase Features: Dataset D:\Data\connection1.sde\db1.DBO.FDS\db1.DBO.lines does not exist or is not supported
I can't explain why sometimes publishing one model will work...the same model will fail with the above error after it is republished. Even if I go back and republish the one model that worked previously, it will continue to fail. I have tried this using a variety of models that use feature classes in the enterprise geodatabases, and get the same type of error, regardless of the specific model, feature class, or operation being performed.
To work around this, I have tried a variety of approaches. All of the following produced the same result (Server always looked for the connection files in D:\Data):
- Option 1: I tried to map a network drive D on the server that points to the data folder on E. ArcGIS server doesn't seem to recognize the mapped network drive location.
- Option 2: Create a fileshare \\localhost\Data on both machines (pointing to D:\Data on the client, and E:\Data on the server), then registered \\localhost\Data as a data store on the server. Once this was done, I opened/executed/published the same models from the fileshare location.
- Option 3: Reassign the letter for the D: drive on my local machine to E:, ensure folders are registered appropriately on the server. Re-publish everything again.
- Option 3b: Recreate the toolbox/models from scratch in E:\Data on my local machine, publish again.
- Option 4: Move everything to C:\Data on both machines, register data stores, repeat publishing.
- Option 4b: Repeat Option 3b, but with everything created in the C:\Data location, repeat publishing.
I have also tried turning on/off the option for models to use relative path references - this seems to have no impact.
It seems to me that if the D:\Data path doesn't exist on either machine, I should not be able to run the tools at all, let alone publish them, if they still relied on resources in that location.
Can anyone suggest what might possibly be causing references to the D path to stick around?
Final workaround: Shrink the E: drive on the server a little bit, format the empty space, assign the D: drive letter to the empty space, and create a Data folder containing copies of the connection files in this folder. The models will now work. But this solution seems less than ideal.