|
POST
|
The workflow I described won't use any arcpy functions, aside from creating the SDDraft and the SD file.You'd be using straight Python to upload files (an SD file) to a website, (the Admin API), and then publish it using the Publishing Tools GP service. Run through the process manually through ArcGIS Server Manager and watch the network traffic. You'll be re-creating all of those requests within Python. What authentication service are you using? As long as there are libraries to handle the authentication, (requests, requests_ntlm, etc), you shouldn't have a problem.
... View more
10-07-2019
10:07 AM
|
0
|
1
|
6548
|
|
POST
|
The SD file packages the necessary files and folders for the service. It can't be used directly against the createService API. The createService API requires service JSON, which requires a bit of pre-work to create the necessary folders and other metedata. Instead, if you upload the service through Manager, watch the network traffic and re-create the requests in your language of choice. At a high level, its: 1) Upload to the Admin API 2) Get the service configuration 3) Run Publish Service Definition with the service configuration 4) Check the job status until a success or failure.
... View more
10-04-2019
01:46 PM
|
0
|
3
|
6548
|
|
POST
|
The first bullet of the criteria information describes the limitation: A service must meet certain criteria in order to use the shared instance pool. If it doesn’t, the option will be greyed out in ArcGIS Server Manager. At 10.7, these criteria apply: Only map services, including feature services, can use the shared pool. Only certain capabilities of map services—feature access, WFS, WMS, and KML—can be enabled. You can use the Capabilities tab to turn off any incompatible capabilities. Services that have custom server object extensions (SOEs) or server object interceptors (SOIs) cannot use shared instances. Services published from ArcMap cannot use shared instances. Cached map services published from ArcGIS Pro that meet the above requirements can use shared instances.
... View more
10-04-2019
01:40 PM
|
9
|
3
|
3063
|
|
POST
|
If the service has the Query and Data operations available, then users can scrape the features from the service. In order to prevent that, only enable the Map capability, which means only images can be returned by the service: Tune and configure services—Documentation | ArcGIS Enterprise Suppose you wanted to allow consumers of a mapping web service to draw the map but not to query the data sources of the map's layers. You would then need to disable the Data operation and ensure that the Map operation is allowed. This means you can't add individual feature layers to a map, though.
... View more
10-04-2019
10:18 AM
|
1
|
1
|
1436
|
|
POST
|
Any request to the Admin API can be scripted. If there isn't a built-in function within the Python API, watch the network traffic using Fiddler or your browsers dev tools and re-create the request yourself: import urllib
import urllib2
import json
import traceback
import ssl
base_url = 'https://machine.domain.com:6443/arcgis'
username = 'admin'
password = 'admin'
service = "<service name>"
#Function to open URLs
def openUrl(url,params):
try:
if not params:
params = {"f":"json"}
else:
params.update({"f":"json"})
encoded_params = str.encode(urllib.urlencode(params))
request = urllib2.Request(url)
sslContext = ssl._create_unverified_context()
request.add_header('referer',base_url)
response = urllib2.urlopen(request,encoded_params, context=sslContext)
decodedResponse = response.read().decode('utf-8')
jsonResponse = json.loads(decodedResponse)
return jsonResponse
except Exception as e:
raise Exception("Unable to open {} - {}".format(url,e))
#Get a token
token_params = dict(username=username,
password=password,
client='referer',
referer=base_url)
token_url = '{}/tokens/generateToken'.format(base_url)
token = openUrl(token_url,token_params)['token']
#Change provider from ArcObjects11 to DMaps
changeProviderURL = '{}/admin/services/{}.MapServer/changeProvider'.format(base_url,service)
changeProviderParams = dict(provider="DMaps",
token=token)
updateProviderResp = openUrl(changeProviderURL,changeProviderParams)
if "status" in updateProviderResp and updateProviderResp['status'] == "success":
print("Successfully updated {} to be shared".format(service))
else:
print("Unable to update {} to be shared - {}".format(service,updateProviderResp['messages'])) In order to do all services, you'll need to make requests to the root folder to find all services and then loop through them, and then loop through all folders. Each loop, you'd pass in the service name instead of hard coding it.
... View more
10-04-2019
09:53 AM
|
8
|
1
|
2208
|
|
POST
|
The web adaptor should be redirecting https://wa.domain.com/wa-name to https://wa.domain.com/wa-name/home automatically. Do you have a reverse proxy in front of the web adaptor?
... View more
10-03-2019
03:49 PM
|
0
|
0
|
2558
|
|
POST
|
Yes, can you reach https://<server>.<domain>.<com> in your browser and see the IIS splash page? If not, you'll need to set up the HTTPS binding. You can try to use a self-signed certificate. Once you can reach https://<server>.<domain>.com in your browser, see if the Configuration Wizard proceeds. If it doesn't, you may need to add the certificate to the Trusted Root Certification Authorities store on the machine and any other machines you expect to use the deployment. Or, use a certificate that all machines in your network trust by default .
... View more
10-01-2019
11:03 AM
|
0
|
0
|
7815
|
|
POST
|
Self-signed certificates can be used for the web adaptors as well, but you'd need to make sure any clients accessing the site trust those certificates, which is difficult to manage. So while it would work, there's a bit of overhead in working with self-signed certificates at the web server as well. The best approach is to use certificates that the machines that are going to access your portal trust by default.
... View more
10-01-2019
09:56 AM
|
0
|
2
|
7815
|
|
POST
|
The logs are a bit different at 10.5, I'll need to double check what's used at that version. Do you have administrative access enabled for the Server Web Adaptor?
... View more
10-01-2019
09:54 AM
|
0
|
1
|
4088
|
|
POST
|
The installation of the Enterprise Builder will set up IIS and the HTTP endpoint for you, but it won't configure the HTTPS endpoint. You need to do that yourself, which is likely what Ben O'Connor has done.
... View more
09-30-2019
11:40 AM
|
1
|
0
|
7815
|
|
POST
|
In a base deployment, such as one created using the Enterprise Builder, there are 4 certificates as there are 4 separate web servers that require HTTPS communication: 1) The web server hosting the web adaptors - this will likely be a CA signed certificate, such as one from a well-known provider, (Digicert, Verisign, etc), or your domain certificate authority 2) Portal for ArcGIS 3) ArcGIS Server 4) ArcGIS Data Store The last 3 certificates are created automatically by the individual components and issued to the common name, or CN, of the machine as a self-signed certificate. None of these are going to be trusted by the machine or any other machines in your network by default. You can configure each to use your own certificate if you'd like: Configure ArcGIS Server with an existing CA-signed certificate—ArcGIS Server Administration (Windows) | ArcGIS Enterpris… Import a certificate into the portal—Portal for ArcGIS (10.7 and 10.7.1) | ArcGIS Enterprise ArcGIS Data Store command utility reference—Portal for ArcGIS (10.7 and 10.7.1) | ArcGIS Enterprise It'd be up to you and your IT staff on whether you're OK with leaving the self-signed certificates. There is a convenience factor of setting up the web server certificate to use one that all machines trust by default as well.
... View more
09-30-2019
11:39 AM
|
6
|
2
|
7815
|
|
POST
|
How are you identifying them as the Publishing Tools service? Did you scrub out the command line column for security reasons? The command line column will have a -Dservice parameter that associates the SOC process with the service name: 20190927000011.528837-420 ArcSOC.exe 16376 "C:\Program Files\ArcGIS\Server\bin\ArcSOC.exe" -XX:-CreateMinidumpOnCrash -Xmx64M -XX:+UseParallelGC -Dservice=System.PublishingTools.GPServerSync.... In your screenshot, I don't see the command line information.
... View more
09-27-2019
03:12 PM
|
0
|
3
|
5569
|
|
POST
|
Can you describe the configuration? Do you have Portal and Server on separate machines? What URLs are you using for federation?
... View more
09-27-2019
03:07 PM
|
0
|
4
|
4088
|
|
POST
|
They don't work because Server needs to validate the token via Portal. So: Your client machine: IP address 10.0.0.1 The Server machine: IP address 10.0.0.3 The Portal machine: IP address 10.0.0.3 If you generate a token using your IP, Server will take that token and ask Portal to validate it, since Portal is controlling the security. The request that Portal receives is not from your machine, but from the Server machine, which has a different IP than your machine. Referrers are the recommended approach in a federated environment.
... View more
09-27-2019
03:05 PM
|
0
|
0
|
2194
|
|
POST
|
Hm, a 301 HTTP code means it's redirecting, but that may be different from IOS exception codes. A quick search online returns a list of ErrorDomainCFNetwork exceptions, and it seems like 301 may be bad credentials? Not a developer so this is a pretty big leap: CFNetworkErrors.cfErrorHTTPBadCredentials - CFNetworkErrors | Apple Developer Documentation
... View more
09-26-2019
11:20 AM
|
1
|
1
|
5888
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 05-28-2026 06:05 AM | |
| 1 | 08-26-2016 10:10 AM | |
| 2 | 02-22-2024 07:22 AM | |
| 1 | 06-07-2024 07:11 AM | |
| 4 | 12-12-2024 08:52 AM |
| Online Status |
Offline
|
| Date Last Visited |
06-08-2026
07:43 AM
|