• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

RDS connection failure: For input string: ""

New Here ,
Nov 16, 2017 Nov 16, 2017

Copy link to clipboard

Copied

I have been trying all day to get RDS working, so that I can run the Security Analyzer.

I've gotten over several hurdles (CFIDE was blocked, IIS wouldn't handle requests for files that don't exist, a few other things, all resulting in 404 errors). So now that I'm not getting a 404, I feel like I must be close.  But I don't know what's wrong.

All I get when testing the connection is 'The HTTP request to talk to your server returned with the following message: For input string: "" '

I am using an SSL connection, but when I enable regular HTTP traffic, and don't use SSL, I get the exact same thing, so I'm fairly sure it doesn't matter.

Views

346

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
May 01, 2021 May 01, 2021

Copy link to clipboard

Copied

Tim, I realize this is a few years after you wrote here, but in case anyone else finds it, in a case like this it would be valuable to know what you would get if you made a test request in your browser, like the RDS feature in CFBuilder would. Under the covers, it tries to talk via http to /CFIDE/main/ide.cfm.

 

What happens if you put that path into a browser running on the same machine as your CFBuilder, using the same ip or machine name that you put in the RDS "host name" field of your RDS configuration, and using the same port as you put in the "port number" there. And of course, if you checked "Use SSL for connection", then change tour URL to using "https".

 

Again, this is the URL that CFBuilder (or the old CF Studio or HomeSite+ editors) would make, from within CFBuilder. So if I had configured my servername as localhost and my port as 8500, then the URL I should try is (in a browser on the same machine as my cfbuilder) should be:

 

http://localhost:8500/CFIDE/main/ide.cfm

 

The response should be a 405 "method not allowed" error. That's not bad, that's good. That confirms I AM getting to the server and the RDS feature within CF, and it's rejecting that browser's default "get" method.

 

If instead you get any other error (like a 404), then there's a problem that needs to be solved. Note that the problem is NOT that "there is no main/ide.cfm within the CFIDE folder". There is not supposed to be. This path is a virtual one, answered by a servlet filter (more below).

 

There are many things that could be amiss, causing the 404:

  • you may not be able to reach the URL from the machine where you're running that request in your browser (in which case neither can the RDS feature in CFBuilder)
  • you may not have the RDS feature enabled in CF. There's a setting in the CF Admin (in recent CF versions), under the "Security" section and "RDS". If you change it to enabled, you need to restart CF
  • you may be trying to reach that CFIDE path using not the built-in CF web server port but your web server (such as port 80). In that case, something in the web server may be blocking access to the CFIDE path (in ANY request). 
  • Indeed, another tip in setting up RDS is to look at how you would (indeed, if you could) access your CF Admin URL from a browser on the machine running CFB. However you access that  admin URL (host, port) is how you should be trying to setup RDS (whether you are allowed to login to the Admin or not).
    • And FWIW, since CF2016, CF sets up the web server connector such that you cannot any longer access the CF Admin using your external web server, like IIS or Apache. As such, since requests for the CFIDE/administrator would fail if requested that way, so also will a request for CFIDE/main/ide.cfm fail, as it's set to disable calls to ANY CFIDE path 
    • And of course, for the RDS configuration to work, you need to be using a valid RDS password (and userid, if needed), as configured also on the page for RDS in the CF Admin security page
  • Related to the last point, it may be that your external web server itself if configured to block access to the CFIDE path. The CF Lockdown guide talks about setting up either Apache or IIS to block such requests. if someone did that (to "block the admin"), they will have likely "blocked the RDS call". 
  • One more thing that could be unexpectedly blocking RDS access, even if the CF Admin setting for it is "enabled". Note that during CF installation, the installer asks whether to block access to a few "servlets", and I mentioned above that RDS is run as a servlet filter within CF.
    • If you look at the the web.xml file in the CF instance's wwwroot/WEB-INF (as in [coldfusion]\cfusion\wwwroot\WEB-INF\web.xml), there are two sets of XML elements for RDS support (separated by other XML elements about other features).
    • If those RDS elements have been commented out, then again the RDS feature will not "work". And note that both sets of elements related to RDS need to be either commented out or not commented out. If you enable one and not the other, you may find that CF won't run (the service/process will start, but no pages will run).
    • Indeed, if you would need to change that file (such as to uncomment the XML elements), do be VERY careful in doing it. Of course, I would recommand copying off the file before touching it. 

 

One last tip: if you feel that the 404 you get is not telling you enough about what's wrong, and especially if you may be using a URL going through IIS, do be sure to try that URL also on the server (running CF) itself. IIS is configured by default to not show error details and just shows a 404 to users making requests from off the server.

 

I know that's a lot of detail, and really I should create a blog post. I will do that at some point, perhaps adding some screenshots, etc. For now, since I was helping someone else having this same problem, and I was looking for threads discussing it, I thought I would share these thoughts here as they came to me.


/Charlie (troubleshooter, carehart.org)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
May 03, 2021 May 03, 2021

Copy link to clipboard

Copied

@Tim Climis : "All I get when testing the connection is 'The HTTP request to talk to your server returned with the following message: For input string: "" "

 

I think the cause is simple. In the RDS settings, you left an input field empty where you had to enter an integer.

 

In any case, let's have a look at your settings. Could you please share with the forum the RDS settings that you used when testing the connection? You can find the settings as follows.

 

Create a ColdFusion project in ColdFusion Builder, if you haven't yet done so. If you have, open the project in CF Builder. Ensure that you can run a test CFM page from CF Builder. That shows that your settings are OK.

 

Now, open the RDS Fileviewer. To do so, navigate to Window >  Showview > RDS Fileview.

BKBK_0-1620036463050.png

Click on the button to Show RDS Configuration dialog. You will get the following user interface:

BKBK_1-1620037338023.png

 

Choose the appropriate server (CF2021 in my case). Share with us the RDS connection settings.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
May 03, 2021 May 03, 2021

Copy link to clipboard

Copied

Thanks for the ideas guys. As I recall I never did get this working. But I also switched to using vscode a few years ago now, so I'm not sure if I can even try this anymore. I might be able to try some of charlie's suggestions. Maybe I'll see in the interest of science.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
May 03, 2021 May 03, 2021

Copy link to clipboard

Copied

Understanable. FWIW, the next version of cfbuilder (2021)is due to be based on vs code rather than its current Eclipse basis. As such, these RDS issues will likely continue to plague folks, which is all the more reason I wanted to share what I did.

 

If you get to recreate the problem, great. If you see a solution, even better. If it's what BKBK proposed, I will honestly be very surprised. (The empty string in that error refers to what came *back* to the red client rather than what it *sent*.) 


/Charlie (troubleshooter, carehart.org)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
May 04, 2021 May 04, 2021

Copy link to clipboard

Copied

LATEST

@Charlie Arehart : "If it's what BKBK proposed, I will honestly be very surprised. (The empty string in that error refers to what came *back* to the red client rather than what it *sent*.) "

 

I don't see why you're surprised. To borrow your own words, client *sent* data to service. Service validated data and returned validation result (For input string: "" ) *back* to client.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Resources
Documentation