Skip to main content
Inspiring
September 4, 2018
Answered

Why do I need to run the Web Configuration Tool?

  • September 4, 2018
  • 1 reply
  • 1694 views

While working through my migration from Windows Server 2008 to Windows Server 2016 (clean install) I came across a problem, none of my CFM files would load, I just got a 404 error.

I was running IIS, my root was the default innetpub/wwwroot for the CF2016 install, but my web sites are in another directory.

When I installed my 2008 server some time ago everything went fine. I did recently notice the two mappings for CF_scripts and Jakarta, and wondered where they came from. I'm pretty sure CF was installed and then I went to IIS to add my sites.

This time things were different, after pulling my hair out for an hour or two I realized that those mappings were not present. I ran the Web Site Configuration Tool, removing the ALL setting and then putting it back, and all of the mappings were now present and the sites were now working fine.

The question I have is, why am I now having to run this when I didn't have to do it before and does this mean I'll need to run it every time I add a new site?

Is there anything I can/should do when installing the IIS or ColdFusion so I can forget about this issue in the future and make it work when I just add a site in IIS?

Thanks

Mark

This topic has been closed for replies.
Correct answer Charlie Arehart

Mark, it's a simple problem on one hand, but definitely confuses people.

To answer your last question, you can just add the jakarta virtual directory yourself. You don't necessarily NEED to run the wsconfig tool.

The CF installer has always offered the option to configure the connection to IIS (or Apache) near the end of the installation process, or you could run the wsconfig tool at any time. Both options let one configure either "all sites" or individual sites.

And in CF10 and above, that does 3 things in IIS: it creates an ISAPI filter, several handler mapppings, and a jakarta virtual directory. These all point to a folder created in the CF config/wsconfig folder. If it's configured for "all sites", then the ISAPI Filter and Handler mappings are configured at the IIS "server" level and can be inherited by any new sites (as was the case in CF9 and before).

The problem is that IIS has no means to create auto-create the jakarta virtual directory. That's why you find things "not working".

So again, you can just add the vd yourself (especially in a case where you have only configured "all sites" to be connected to CF, as there is only 1 folder under config/wsconfig to point to). Or you can re-run the wsconfig if you want to. In the case of such an "all sites" setup, then yes, as you note it will remove the settings (and the VD from all sites), and then it will add them back to all sites PRESENT THEN.

And to be clear, all this also adds not just the jakarta VD but also the CFIDE vd (in CF 10 and 11) or the cf_scripts folder in CF2016 or 18.

(And if one wants to create a new connector for one or more sites, then you would run the wsconfig tool to create that connector for each additional individual site. And CF2016 even added a new feature in the wsconfig tool to configure EACH then-existing to use its own connector. Discussing that choice is beyond the scope of your question.)

Does that make more sense now? Any remaining questions?

1 reply

Charlie Arehart
Charlie ArehartCorrect answer
Adobe Expert
September 5, 2018

Mark, it's a simple problem on one hand, but definitely confuses people.

To answer your last question, you can just add the jakarta virtual directory yourself. You don't necessarily NEED to run the wsconfig tool.

The CF installer has always offered the option to configure the connection to IIS (or Apache) near the end of the installation process, or you could run the wsconfig tool at any time. Both options let one configure either "all sites" or individual sites.

And in CF10 and above, that does 3 things in IIS: it creates an ISAPI filter, several handler mapppings, and a jakarta virtual directory. These all point to a folder created in the CF config/wsconfig folder. If it's configured for "all sites", then the ISAPI Filter and Handler mappings are configured at the IIS "server" level and can be inherited by any new sites (as was the case in CF9 and before).

The problem is that IIS has no means to create auto-create the jakarta virtual directory. That's why you find things "not working".

So again, you can just add the vd yourself (especially in a case where you have only configured "all sites" to be connected to CF, as there is only 1 folder under config/wsconfig to point to). Or you can re-run the wsconfig if you want to. In the case of such an "all sites" setup, then yes, as you note it will remove the settings (and the VD from all sites), and then it will add them back to all sites PRESENT THEN.

And to be clear, all this also adds not just the jakarta VD but also the CFIDE vd (in CF 10 and 11) or the cf_scripts folder in CF2016 or 18.

(And if one wants to create a new connector for one or more sites, then you would run the wsconfig tool to create that connector for each additional individual site. And CF2016 even added a new feature in the wsconfig tool to configure EACH then-existing to use its own connector. Discussing that choice is beyond the scope of your question.)

Does that make more sense now? Any remaining questions?

/Charlie (troubleshooter, carehart. org)
ACS LLCAuthor
Inspiring
September 5, 2018

Thanks for the in-depth reply Charlie.

What I can't understand is why I never ran into this problem when I set up my previous 2008 server. I can only think that I either added the sites to IIS before I installed CF, or I did an upgrade over the top of my CF8 and therefore the sites were already in IIS, I just can't for the life of me remember.

I do always select IIS on the CF install, so I guess that it seems that every time I add a new site I must remember to either manually add the Jakarta virtual directory, or re-run the Web Configuration tool?

ACS LLCAuthor
Inspiring
October 1, 2018

Mark, how did things sort out? Was that indeed the problem?


RDPGuard had blocked the IP of the server itself, therefore stopping it serving pages. I thought it was just CFM because other HTML files that I had tested were in the browser cache, it was in-fact all pages not being served.

The reason for this was that I had imported settings for CF from my old server, there were some scheduled tasks running and they were using the original servers user name and password for authentication. As these scheduled tasks ran they cause authentication failures, therefore RDPGuard blocked the IP, which was the IP of itself, therefore blocking port 80.

With regards to running the web configurator, I'll never know for sure but I can only presume that in the past I must have set up the domains in IIS before I installed CF (which I don't remember or think I would do) and then on install CF puts in all the mapping. This time I must have installed CF first, then added the sites, hence the missing mappings which the configurator fixes. CF2016 is new to me, so parts CF8 didn't have the same sort of configuration/issue, I've noticed these mappings in CF8, so I think that is potentially part of the issue.

From now on when I add a domain I'll just make sure I run the CF web configurator after I set it up in IIS.

Also, when I export and import settings from CF to set up a new server, I'll make sure I stop all the scheduled tasks and ensure they have the right credentials for that particular server!

Lessons learned