You are not logged in.
Pages: 1
Hi Arnaud, we installed a mormot server at a customer on w2008r2 server mid last year.
The mormot server provides mvc view, rest and soa.
the server is reachable over a subdomain of our customer and uses https with valid certificate. we use port 443.
till approx. oktober everything worked fine.
Since oktober the syncrossplatform client gets error 404 connecting to the server.i tried all 3 clients, syncrt, indy and http. no success, but different error.
But if i use for example chrome or ie and enter the url the crossplatformclient uses the server gives answer as expected. for example contractid.
we want to contact the network specialist of our customer. but have no clue where can be the main difference between chrome and syncrossplatform.
He would say chrome works - so what...
The same mormot server / client works fine at many other customer. I think it may be a setting at the customers router/firewall our server is in Dmz.
do you have any idea/tip what to test ?
Rad Studio 12.1 Santorini
Offline
Today i testet SynCrossPlatform client with USESYNCRT Set. Using the TWinHTTP Client.
I got this Error from Server:
HTTP/1.0 400 '#$D#$A'Content-Type: text/html'#$D#$A#$D#$A
To generally test clients i wrote testpgm a time ago. And here i testet same TWinHTTP with same server url and it gives:
'HTTP/1.1 200 OK'#$D#$A'Date: Sun, 29 Jan 2017 11:57:55 GMT'#$D#$A'Content-Length: 12'#$D#$A'Content-Type: text/plain; charset=UTF-8'#$D#$A'Server: mORMot (Windows) Microsoft-HTTPAPI/2.0'#$D#$A'Set-Cookie: citrix_ns_id=y9HGJkkEtpEM9Wd5rMdbNUAj5MA0002; Domain=.XXXX; Path=/; HttpOnly'#$D#$A'X-Powered-By: mORMot 1.18 synopse.info'#$D#$A'Server-InternalState: 8'#$D#$A'Accept-Encoding: synlz,gzip'#$D#$A#$D#$A
Now i compared the Call of TWinHTTP.Request. Here is the Difference:
Not Working - as in standard SynCrossPlatform
Request(<Address>,'GET',20000,'content-type:text/plain','','text/plain',Loh,result);
Working - Using my test pgm
Request(<Address>,'GET',20000,'','','',Loh,result);
Leaving InHeader and InDataType Empty gives no Error.
I could not really explain this. if ERROR there is HTTP/1.0 on Success there is HTTP/1.1
Now i'll test Windows HTTP Client and iOS Version.
Rad Studio 12.1 Santorini
Offline
Now i testet the SynCrossPlatform Http - Client with that Server.
With the HTTP Client the first 3 Steps work
1. GET ROOT/TimeStamp
2. GET ROOT/Auth=Username=...
3. GET ROOT/Auth=Username=...Password=...
But the 4. Command: PUT ROOT/..._contract_?session_signature=... gives the following Error:
'Cache-Control: max-age=0, must-revalidate, private'#$D#$A'Connection: close'#$D#$A'Date: Sun, 29 Jan 2017 12:52:59 GMT'#$D#$A'Transfer-Encoding: chunked'#$D#$A'Content-Type: text/html; charset=us-ascii'#$D#$A'Server: Microsoft-HTTPAPI/2.0'#$D#$A'X-Cache-Control-Orig: '#$D#$A'X-Expires-Orig: None'#$D#$A
May be there is a proxy between client and Server ?! Any IDEA ?
Rad Studio 12.1 Santorini
Offline
No i testet again with USESYNCRT and get the same Result as with HTTP Client (I replaced InHead and InDataType with '' - hard coded )
Result in OutHeader after POST Request.
'HTTP/1.1 404 Not Found'#$D#$A'Cache-Control: max-age=0, must-revalidate, private'#$D#$A'Connection: close'#$D#$A'Date: Sun, 29 Jan 2017 13:02:48 GMT'#$D#$A'Transfer-Encoding: chunked'#$D#$A'Content-Type: text/html; charset=us-ascii'#$D#$A'Server: Microsoft-HTTPAPI/2.0'#$D#$A'X-Cache-Control-Orig: '#$D#$A'X-Expires-Orig: None'#$D#$A#$D#$A
Does anybody have a Idea why this Server rejects my POST requests ?
Rad Studio 12.1 Santorini
Offline
To get more Information on that Phenomeon i installed Fiddler on my Client PC and now i found the source for the 404 Error
Normally the POST Request contain a URL e.g. Root/PortURL and the Data in the Body but in my case on that specific server the URL (and possibly the Body) is ripped away.
My Mormot Server is called with URL /
As Result it gives Answer 404 - Not Found to my POST - Request.
@AB - is there a possibility to Implement a LOG Entry in TSQLLog if such unhandled URL is requested ? I didn't found a place - i Think it is handled in http.sys. Another Idea could be to modify the not found Error Message (e.g. Adding a Servername or Hint) so i can see it is send from my Server..
Fiddler is great to debug cause it works with https (it can display the encrypted Packet by Injecting an own certificate locally ) (Man in the Middle ...)
But for no i think it is not a mormot Problem but its on my Customer's side.
Last edited by itSDS (2017-01-30 10:58:02)
Rad Studio 12.1 Santorini
Offline
Solved - Firewall Setting on customer's side
Rad Studio 12.1 Santorini
Offline
Pages: 1