Copy link to clipboard
Copied
We have recently upgraded to CF10 on a new server install of Windows Server Web 2007 32 bit IIS 7.
Our Google checkout callback section has stopped working and it seems to be a CFHTTP problem.
The cfhttp outgoing/GET calls work fine, it's just incomming/POST calls that don't work. We have replicated this with the following code.
<cfsavecontent variable="strXML"><?xml version="1.0" encoding="UTF-8"?>
<new-order-notification xmlns="http://checkout.google.com/schema/2" serial-number="725311029182564-00001-7">
...
</new-order-notification>
</cfsavecontent>
<cfhttp url="http://zzz.cfm" method="POST" result="objGet">
<cfhttpparam type="XML" value="#strXML.Trim()#"/>
</cfhttp >
Posting to external services like our bank and UPS work, even over SSL. So I don't think it's a certificate issue especially as it fails with both https and http.
In the HTTP log we get what you expect when using GET to an external server, and works on our internal server
"Information","DefaultQuartzScheduler_Worker-10","01/03/13","13:30:00",,"Starting HTTP request {URL='http://www.yyy:80/yyy.cfm', method='get'}"
"Information","DefaultQuartzScheduler_Worker-10","01/03/13","13:30:00",,"HTTP request completed {Status Code=200 ,Time taken=975 ms}"
But when we try to POST data to our server it just times out and does not post any message in the log. This is true even if the page it's calling is blank, so it's not a problem with the code on the landing page.
"Information","ajp-bio-8012-exec-348","01/03/13","14:11:55",,"Starting HTTP request {URL='http://www.zzz:80/zzz.cfm', method='POST'}"
The calls from outside via Google don't even make it into the IIS web logs. So it appears it getting blocked somewhere. We have checked our firewall and it's not blocking the requests and even running the code above locally produces the same results.
Anyone have any ideas how to work out why it's hanging, can't see anything in any of the windows or java logs and all you get in the coldfusion logs is it starting and then nothing.
Copy link to clipboard
Copied
Check how many post parameters are being sent along, if it is more than 100 then that could be the problem. If so play with the "Maximum number of POST request parameters" in the ColdFusion Administrators (CF10), if it is in CF9 then that setting setting must be done manually in the neo-runtime.xml file see: http://www.cutterscrossing.com/index.cfm/2012/3/27/ColdFusion-Security-Hotfix-and-Big-Forms
Maximum number of parameters in a POST request sent to the server. ColdFusion rejects requests if the POST parameters exceed the limit you specif
Copy link to clipboard
Copied
Don't seem to be a POST settings problem. I tried upping the max to 1000 and still failed. But it's typically only a couple of parameters with each request.
Copy link to clipboard
Copied
Just so I don't overlook the obvioius: 'http://www.zzz:80/zzz.cfm' is a fake website name right? That is not what you are really trying to post to right?
Copy link to clipboard
Copied
Correct. It's posting to a real url and I've tripple cheked it works both locally and on the server. The url is on the same domain as the page calling it for the test.
Copy link to clipboard
Copied
Do you have a host entry on the server for this url? I am assuming windows here, correct me if I am wrong. Windows\system32\drivers\etc\host should have a line mapping the address you are posting to.. just the www.zzz.com part and the *local* ip of the server
This is only valid if the server is trying to post to itself.
Copy link to clipboard
Copied
There was not a host entry, IIS handels them. I tried adding one but that did not solve the problem. It seems to have the same problem regardless of the domain I try to post to. I can change it to anything and it still hangs.
Yes it is 'windows server web' and IIS 7.
Copy link to clipboard
Copied
Actually, I've just re-tested to another off iste domain and that works. It only seems to be a problem with incomming POST requests to our server.
Copy link to clipboard
Copied
Do *ANY* any coming requests (GET or POST) reach your server? Could it be firewall issues (software or hardware firewall)
Tim
Copy link to clipboard
Copied
GET requests are ok both locally and remotely. It's only POST events coming into the server that are hanging. The external fierwall is not logging any blocking activity. The only other thing that seems to be running is MS forefront Endpoint protection and that show nothing in the blocking histroy either.