Skip to main content

Probably a question without an easy answer but like to pick your minds:

We use GeoCortex Essentials for our map viewers. We added Workflows (.NET) to the viewers as custom user interfaces to communicate with FME server via API. (Simple things: upload (log)file, choose CRS, proces data, add data to gdb, wait for a succesful from FME server, refresh mapservice.)

This works very well in Test but fails in Production. Test and Production are not exact duplicates; In Test Essentials and FME Server are installed on the same machine. In Production Essentials and FME Server are installed on different machines. The requests from Essentials are TLS 1.0 and FME Server API seems not to accept these. We can fix this by sending the requests via a proxy but this feels fishy. All installations are outsourced so we are a bit limited in IT changes.

As an alternative I can create json files with the parameters I would like to send the API over post and a DirectoryWatcher to receive the json with FME Server. This works but it is not real communication, just one system reacting on another one. Communicating back to the user interface ("This action will remove 5 objects, proceed?") is lost.

Do other routes exist? Just want to make sure I don't miss something I don't know...

It's not a CORS issue is it?

https://docs.safe.com/fme/html/FME_Server_Documentation/Content/WebUI/CORS.htm

I wonder since it works on the same machine, and CORS sounds like it helps sending requests from one machine to another (nb: I'm no expert on this tech, but I recall having a similar issue that was fixed by fiddling with these settings)


It's not a CORS issue is it?

https://docs.safe.com/fme/html/FME_Server_Documentation/Content/WebUI/CORS.htm

I wonder since it works on the same machine, and CORS sounds like it helps sending requests from one machine to another (nb: I'm no expert on this tech, but I recall having a similar issue that was fixed by fiddling with these settings)

I don't think so but will double check to be sure.

It's not a CORS issue is it?

https://docs.safe.com/fme/html/FME_Server_Documentation/Content/WebUI/CORS.htm

I wonder since it works on the same machine, and CORS sounds like it helps sending requests from one machine to another (nb: I'm no expert on this tech, but I recall having a similar issue that was fixed by fiddling with these settings)

Had high hopes but looks like this makes no influence for my problem. A simple GET request in test gives me a valid response. The same request from test to prod gives me:

 

 

There was a workflow error running activity: Exception has been thrown by the target of an invocation.
Workflow 'test' failed
Unhandled exception: 'The underlying connection was closed: An unexpected error occurred on a send.' in activity '1.6: DownloadString'.
The underlying connection was closed: An unexpected error occurred on a send.
Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
An existing connection was forcibly closed by the remote host

 

 

I still don't understand how CORS works exactly. What I do is I use HttpCallers in Workbench to get the syntax right for the GET and POST requests. I then rebuild the functionality in Geocortex Workflows

 

 

Now I disabeled CORS, runned the workbench expecting my requests would be bounced. But everything works fine and the requests (get a token, submit a job) are processed.

 


Had high hopes but looks like this makes no influence for my problem. A simple GET request in test gives me a valid response. The same request from test to prod gives me:

 

 

There was a workflow error running activity: Exception has been thrown by the target of an invocation.
Workflow 'test' failed
Unhandled exception: 'The underlying connection was closed: An unexpected error occurred on a send.' in activity '1.6: DownloadString'.
The underlying connection was closed: An unexpected error occurred on a send.
Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
An existing connection was forcibly closed by the remote host

 

 

I still don't understand how CORS works exactly. What I do is I use HttpCallers in Workbench to get the syntax right for the GET and POST requests. I then rebuild the functionality in Geocortex Workflows

 

 

Now I disabeled CORS, runned the workbench expecting my requests would be bounced. But everything works fine and the requests (get a token, submit a job) are processed.

 

I'm not sure how CORS works either - or whether it's even related here. It sounded possible at first, but not so much now. I'll get one of our server experts to look into the issue.

 


Reply