Mapping Coldbox in CF administrator

Ok…while I have always found work around solutions to this, I’m finally fed up with whatever I am doing wrong. I get

Could not find the ColdFusion component or interface coldbox.system.Coldbox.

constantly and I’m not sure why…but it may have something to do with the way I configure my development box. I always like to “mimic” what will happen in the real world, particularly when I put code onto hosted servers where I have little control over things.

This is for a Windows 7 machine, CF 9.x fully patched.

I always like to have my code in inetpub/wwwroot in it’s own directory but like to use IIS to treat it as a root website via the URL I supply. So, I create in IIS a site that points to the directory and supply a host header of dev.site.com. I apply that localhost IP address to point to that domain in my hosts file too.

At that point, locally browsing to “dev.site.com” should go to the proper website and if I were to hard code “/” in any pathing in the coldfusion code, it would always resolve to the “root”. However, I get the above error after I drop coldbox somewhere and create a “/coldbox” map in the CF admin.

why why why? I want a central store for coldbox. If I copy the coldbox core directory to the site, everything works. If I create a virtual IIS directory, it does not…what am I doing wrong?

Mike…confused…help.

Mike,

Are you using a CF Mapping or an IIS virtual directory?

Luis Majano
CEO
Ortus Solutions, Corp
www.ortussolutions.com

ColdBox Platform: http://www.coldbox.org
Linked In: http://www.linkedin.com/pub/3/731/483
Social: twitter.com/ortussolutions | twitter.com/coldbox | twitter.com/lmajano

I have tried both ways separately and neither want to work properly. I tried (as I was writing the initial post), creating a new site just the way I described and only used the CF mapping and get the error. I have to believe it is environmental or IIS or something along those lines because I have followed the instructions with the only exception being that the site is being treated as a site root and not a sub-directory of a root (localhost/mytestsite vs. dev.mytestsite.com).

Testing update.

So, using the same advanced application template installation on a new project running from a sub-directory off the root but eliminating the site in IIS and running from localhost, dropping all host headers and creating the map to /coldbox, everything works fine.

So the problem I’m having does seem to be related to treating a site “as root” in IIS. I guess I can sort of understand this because isn’t the mapping relative to the root? and if IIS is telling the request that “dev.site.com” is at the root, where would “coldbox.system.Coldbox” actually? Next is to return to the other (host header / site root) scenario and retest with a virtual directory in IIS to the same coldbox location that CF admin is mapped to…thus making “/coldbox” relevant to the root again.

I’m also willing to accept an alternative way of doing this. For histories sake, ever since host headers on a local desktop became available in IIS, I was taught to do this because: if you are a developer who develops many websites, you want to be able to store the website code in separate directories OFF THE ROOT but have sites that are treated exactly as the same as the would be in a stand alone, one website only environment. So traditionally I have a whole set of local sites, they stand on their own via host headers so I never user “localhost” for anything. This was also a long time ago when, at least for me, it was a lot trickier (though just as ugly) to have to prefix paths with coded values to point to the correct directories…every time some manager got a wild hair and decided some content would be better “here” rather than “there”, there were always at least some code changes that were required.

Anyway, relative to CF, IIS and Windows…if that is now just crazy thinking, someone please point me in a better direction or better thinking…or at least more up to date thinking…I’ve been doing things this way for a long time and have little hair left.

Mike

As this is the way I always do it, except that I don’t do a CF mapping in the Administrator, have you removed the mapping from the application.cfc?

I would imagine you are copying coldbox into the root of your site though right? As I have been wrestling with this I have realized that I think I answered my own question. If you are going to treat your subdirectory as a site root, you have to have a copy of coldbox in the site…if you are going to use a shared site and sub-directories as application sites, you can use a mapping or just have coldbox in the same root.

I think I feel like an idiot.

Mike

No I never place coldbox in the root of my application.

Really?

So, directory of code (who cares where), IIS site with a host header defined…coldbox installed in your localhost web root, no mapping and you go do whatever.whatever.whatever (locally defined as host header) and it works?

No I said I don’t use the CF Administrator, and use the Application.cfc per mappings instead.

So if you have that in your Application.cfc it will override the Administrator setting.

Well, I tried that, correctly I think, but I would not have thought it would make any fundamental difference…isn’t the CF admin mapping and the mapping struct in the application the same thing? It did not make a difference.

Could there just be something crazy about how I configure the site in IIS?

Mike

Yes they are, but as it can’t find the coldbox system then it is obvioulsy not mapped right, and as you stated that you where doing it in the Administrator, I just let you know that your setup is almost the same as mine except that I do it in the Application.cfc

So that means you haven’t set up the mappings right, or there is something else not working. My suggestion was in case you are doing it in the CFIDE, make sure that you remove the one in the Application.cfc, if you don’t have one there then I suggest you find out if it is mapping right.

I am set up exactly the same as you, only I use per app mappings in Application.cfc (so I guess the same as Andrew) and I do not have your problem either.

However, I do recall having a similar issue some time ago and I think it had something to do with URL rewriting (that is the IIS’s module, not the Coldbox version). That or caching web server paths in CF Admin… sorry I don’t recall! But I have a dozen local, colldbox sites setup just like you in subdirs in inetpub/wwwroot, on Win 7, individual sites setup in IIS with headers and the same (e.g. dev.mysite.com, etc.) pointing to localhost in my hosts file, a single folder in the same web root as the apps called “coldbox-3.5.2” mapped as “/coldbox” in all of the App.cfc’s and no issues. So I know it does work!

yeah…everyone seems to think this should work…so I’ll look into the IIS angle and the rewrite module next…that seems most likely since it takes very little effort to configure everything else and I have now had at least three people confirm they do things the same way as I have been.

Thanks for that idea and the added confirmation.

Mike

Update. Ok, so the module (v2) was not properly installed, but just installing it was not enough.

This is pretty standard stuff. None of my Coldbox apps have a Coldbox subdirectory.

Your path or your permissions (for CF) are the most likely suspects. Once the HTTP request is proxied to ACF, your IIS mappings and configuration are largely irrelevant. In other words, if you can hit index.cfm, the problem is with your mapping or the permissions on the mapped directory/share.

Are you using an absolute path for your Coldbox mapping?

Jason Durham