1 2 Previous Next 48 Replies Latest reply on Dec 27, 2017 10:03 AM by Charlie Arehart

    Default document not being processed when not included in URL

    Miguel-F Level 3

      Running ColdFusion 9,0,1,274733 on JRun (J2EE install), Windows Server 2008 R2, Java 1.6.0_22

       

      Has anyone else had a problem getting the default document, index.cfm, to work with ColdFusion? I'm assuming that this is only an issue because of our setup; different web server (IIS) and application server (ColdFusion). I can't imagine we are the only ones running this configuration. Are we?

       

      So here is the issue.

      If we request http://mysite.com/test/index.cfm it works.

      If we request http://mysite.com/test/ it does not work and we get a 404.

       

      I checked the web connector's log file on our IIS server and can see that it is sending the request to our ColdFusion server. The ColdFusion server is sending back the 404 error code but I can't figure out why. We have the default document set on our IIS server for index.cfm. We also have the <welcome-file-list> set to include index.cfm on our application server (web.xml).

       

       

      From our web connector's log when we do NOT include index.cfm:

       

      2012-11-01 13:37:22 jrISAPI[4544:3600]  ***HttpExtensionProc for JRun ISAPI Extension: uri is "/test/"

      2012-11-01 13:37:22 jrISAPI[4544:3600]     HTTP_HOST: servername

      2012-11-01 13:37:22 jrISAPI[4544:3600]  filtering /test/ (/test/) HOST=servername

      2012-11-01 13:37:22 jrISAPI[4544:3600]  filterRequest:   no match

      2012-11-01 13:37:22 jrISAPI[4544:3600]  ExecUrl: request received: URL=/test/

      2012-11-01 13:37:22 jrISAPI[4544:3600]  ExecUrl Completion: 404, ErrorCode=2, URL=/test/.

       

      From our web connector's log when we do include index.cfm:

       

      2012-11-01 13:49:02 jrISAPI[9936:3600]  ***HttpExtensionProc for JRun ISAPI Extension: uri is "/test/index.cfm"

      2012-11-01 13:49:02 jrISAPI[9936:3600]     HTTP_HOST: servername

      2012-11-01 13:49:02 jrISAPI[9936:3600]  filtering /test/index.cfm (/test/index.cfm) HOST=servername

      2012-11-01 13:49:02 jrISAPI[9936:3600]  filterRequest:   matched *.cfm

      2012-11-01 13:49:02 jrISAPI[9936:3600]  ***IISWorkerThreadProc for JRun ISAPI Extension: uri is "/test/index.cfm"

      2012-11-01 13:49:02 jrISAPI[9936:3600]     ALL_RAW: Connection: Keep-Alive Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, application (553)

      2012-11-01 13:49:02 jrISAPI[9936:3600]  Headers and Values:

      ... and much more ...

       

      We have gotten around this issue by using the URL Rewrite module in IIS to append index.cfm to the URL. It works but my gut keeps telling me that we should not need to do that for such basic functionality.

       

      Is anyone else having this issue? How have you gotten around this?

        • 1. Re: Default document not being processed when not included in URL
          WolfShade Level 4

          If you are using IIS, index.cfm is not in there by default.  You have to add it to the default documents list.  I don't have instructions, for that, but it's easily googled.

           

          Never mind.. didn't read the whole post. 

          ^_^

          • 2. Re: Default document not being processed when not included in URL
            Charlie Arehart Adobe Community Professional & MVP

            First, Miguel, by “ColdFusion on JRun (J2EE install)”, do you really mean you deployed a CF WAR on JRun? Or do you mean you chose the Multiserver form of deployment of CF, which does also deploy CF on JRun (but not as a WAR)? May not be critical, but since you wonder about how unusual your setup may be, it seems worth clarifying.

             

            In fact, you go on to say you wonder if it’s “only an issue because of our setup; different web server (IIS) and application server (ColdFusion)”, but nearly everyone runs CF with a web server separate from CF. You don’t mean the web server is on one box and CF is on another (what has traditionally been called “distributed CF”), do you? If so, that would be unusual, but is indeed still supported (if horribly documented).

             

            Back to the default document, I see you saying you set the default document in IIS, but doesn’t the log suggest it was NOT being passed in from IIS to CF?

             

            Is it possible that you have it set in a web site other than that which this request is going through? If you may say “no”, here’s something else to consider: if this is IIS 7, running in native (not IIS 6 compatibility) mode, did you realize that settings made in IIS are saved to a web.config file in the docroot? I’ve seen people get in trouble when they have 2 sites sharing the same docroot, and someone changes settings in one site, not realizing that that causes changes to the other site (literally, you would see it reflected in the IIS interface). So do check to make absolutely sure that index.cfm is in the docroot (just before you make the test request).

             

            Also, since you mention using rewrite rules, is it not possible that one of those rules is getting in the way? Try disabling that functionality for a moment and retry the test request.

             

            Finally, here’s an outside the box thought: are you absolutely positive that the request you’re making is going through that site? You could have a request being unexpectedly handled by a site other than what you think. It’s possible, but I realize not likely.

             

            Hope that helps some. If not, just say so and perhaps others will have more ideas.

             

             

             

            /charlie

            • 3. Re: Default document not being processed when not included in URL
              Miguel-F Level 3

              Charlie Arehart wrote:

               

              First, Miguel, by “ColdFusion on JRun (J2EE install)”, do you really mean you deployed a CF WAR on JRun? Or do you mean you chose the Multiserver form of deployment of CF, which does also deploy CF on JRun (but not as a WAR)? May not be critical, but since you wonder about how unusual your setup may be, it seems worth clarifying.

              I mean that I chose the multiserver installation option.

               

              In fact, you go on to say you wonder if it’s “only an issue because of our setup; different web server (IIS) and application server (ColdFusion)”, but nearly everyone runs CF with a web server separate from CF. You don’t mean the web server is on one box and CF is on another (what has traditionally been called “distributed CF”), do you? If so, that would be unusual, but is indeed still supported (if horribly documented).

              Yes that is what I mean.  IIS is on one box and CF is on a different box.

               

              Back to the default document, I see you saying you set the default document in IIS, but doesn’t the log suggest it was NOT being passed in from IIS to CF?

              The log does suggest that but the setting is made in IIS. I'm not sure what that request looks when it works.  There is also a default document on the CF side (welcome-file-list) which I have also set.


              Is it possible that you have it set in a web site other than that which this request is going through? If you may say “no”, here’s something else to consider: if this is IIS 7, running in native (not IIS 6 compatibility) mode, did you realize that settings made in IIS are saved to a web.config file in the docroot?

              We are running IIS 7.5 I believe (will check when I get back to office tomorrow).  We are not running IIS 6 compatibility mode.  And yes I am aware of the web.config files and have checked the one for this website (the only website on the server).  It appears to be okay.

              I’ve seen people get in trouble when they have 2 sites sharing the same docroot, and someone changes settings in one site, not realizing that that causes changes to the other site (literally, you would see it reflected in the IIS interface). So do check to make absolutely sure that index.cfm is in the docroot (just before you make the test request).

               

              Also, since you mention using rewrite rules, is it not possible that one of those rules is getting in the way? Try disabling that functionality for a moment and retry the test request.

              I have disabled the rewrite rules for this test.  With the rewrite rules it works.  It just seems like that should not be necessary.

               

              Finally, here’s an outside the box thought: are you absolutely positive that the request you’re making is going through that site? You could have a request being unexpectedly handled by a site other than what you think. It’s possible, but I realize not likely.

              I have verified that the request is hitting the web server and actually hitting the ColdFusion server too.  Those are the log excerpts that I included.

               

              Hope that helps some. If not, just say so and perhaps others will have more ideas.

              It does help and makes me verify my thinking/settings. Thanks for the input.

               

               

               

              /charlie

              • 4. Re: Default document not being processed when not included in URL
                Charlie Arehart Adobe Community Professional & MVP

                Thanks for the clarifications, Miguel.

                 

                - So to be clear, you don’t want to say you’re doing a “J2EE install”, for future reference. That is very different from multiserver (there are 3 choices on CF install: server, multiserver, and J2EE).  I do appreciate that technically the multiserver deployment is an install on a J2EE server (JRun), but then so technically is server (it’s just more hidden). If you were doing that third, WAR/EAR deployment, that would indeed be far less typical than most do.

                - As for doing distributed mode, ok that’s interesting. That is also indeed atypical. But I don’t think it should affect this issue. I’ve never done it, though, so I can’t say for sure.

                - As for the default document/welcome-file-list in CF, that’s for use with the built-in web server, so should have no bearing in this discussion. (Again, I understand that it would not be clear on the surface)

                 

                Now let’s move on to more practical matters:

                - You say, “I have disabled the rewrite rules for this test.  With the rewrite rules it works.  It just seems like that should not be necessary.” Did you really mean to say “without the rewrite rules it works?? If so, then what “should not be necessary”? It would seem the rewrite rules could then explain what’s happening, if they are somehow passing the request on to CF before IIS would detect that it was missing a default document. (You may want to explore the modules/filters/other pages in IIS where there is an option to change the ordering of things. Maybe something is handling the request before the default document processing happens.)

                 

                Finally:

                - I had asked, “are you absolutely positive that the request you’re making is going through that site”. Your answer to that seemed to suggest you thought I was asking something else. But bottom line, in that you said (earlier in your note) that you have only the one web site, that rules out my point there.

                 

                Hope something clicks for you.

                 

                /charlie

                1 person found this helpful
                • 5. Re: Default document not being processed when not included in URL
                  Miguel-F Level 3

                  Charlie Arehart wrote:

                   

                  Thanks for the clarifications, Miguel.

                   

                  - So to be clear, you don’t want to say you’re doing a “J2EE install”, for future reference. That is very different from multiserver (there are 3 choices on CF install: server, multiserver, and J2EE).  I do appreciate that technically the multiserver deployment is an install on a J2EE server (JRun), but then so technically is server (it’s just more hidden). If you were doing that third, WAR/EAR deployment, that would indeed be far less typical than most do.

                   

                  Thanks for the clarification Charlie.  Yes, I am running the multiserver configuration on JRun.

                   

                  Charlie Arehart wrote:

                   

                  - As for doing distributed mode, ok that’s interesting. That is also indeed atypical. But I don’t think it should affect this issue. I’ve never done it, though, so I can’t say for sure.

                   

                  Yes, distributed mode is how Adobe references this setup.  I had forgotten about that terminology.

                   

                  Charlie Arehart wrote:

                   

                  - As for the default document/welcome-file-list in CF, that’s for use with the built-in web server, so should have no bearing in this discussion. (Again, I understand that it would not be clear on the surface)

                   

                  Thanks for explaining that to me and that does indeed appear to be the case since this is not working.  I would add however that the web connector's log does show references to the mappings that are also defined in the web.xml file.  So it does appear to reference that file.  The welcome-file-list is also defined in the web.xml file.

                   

                  Charlie Arehart wrote:

                   

                  Now let’s move on to more practical matters:

                  - You say, “I have disabled the rewrite rules for this test.  With the rewrite rules it works.  It just seems like that should not be necessary.” Did you really mean to say “without the rewrite rules it works?? If so, then what “should not be necessary”? It would seem the rewrite rules could then explain what’s happening, if they are somehow passing the request on to CF before IIS would detect that it was missing a default document. (You may want to explore the modules/filters/other pages in IIS where there is an option to change the ordering of things. Maybe something is handling the request before the default document processing happens.)

                   

                  No, I did mean that I have disabled the rewrite rules and that it does work with the rewrite rules.  Let me explain further.  I have configured a rewrite rule that basically appends 'index.cfm' to the url.  When the 'index.cfm' is specified in the url it works.  What I mean by that should not be necessary is that I don't feel like we should need to configure a rewrite rule to make the default document work.  ColdFusion should work that way out of the box.  And indeed, I have confirmed that if IIS and ColdFusion are on the same server it works without the need for a rewrite rule.  So it seems that there is a difference in the way that the IIS default document works on a single server install versus distributed mode install.  Shouldn't this work in distributed mode too?

                   

                   

                  Charlie Arehart wrote:

                   

                  Finally:

                  - I had asked, “are you absolutely positive that the request you’re making is going through that site”. Your answer to that seemed to suggest you thought I was asking something else. But bottom line, in that you said (earlier in your note) that you have only the one web site, that rules out my point there.

                   

                  Sorry, yes I thought you were asking if my request was actually hitting the server in question.  This is the only site on the server and I have verified the request is being written to the logfiles for this site as well as the ColdFusion log files.  So the connector is working.  The issue appears to be that ColdFusion is getting the request, without 'index.cfm' but it does not know that it should process the request using the default document.

                   

                  I added another hack that makes it work but not sure of the ramifications of this change.  I added a ColdFusion mapping, again in web.xml, for '*' (wildcard) to the CFFileServlet.  This makes it work, however, I think this will make ColdFusion attempt to process every request.  Not sure if that is desired?

                   

                  Thanks again for your insight Charlie!

                  • 6. Re: Default document not being processed when not included in URL
                    Miguel-F Level 3

                    Adding some more detail to this:

                     

                    Here are the contents of the web.config file from the web server for this site:

                     

                    <?xml version="1.0" encoding="UTF-8"?>

                    <configuration>

                    <system.webServer>

                        <handlers>

                            <add name="JWildCardHandler" path="*" verb="*" modules="IsapiModule" scriptProcessor="D:\JRun4\lib\wsconfig\1\jrun_iis6_wildcard.dll" resourceType="Unspecified" requireAccess="None" />

                            <add name="hbmxmlHandler" path="*.hbmxml" verb="*" modules="IsapiModule" scriptProcessor="D:\JRun4\lib\wsconfig\jrun_iis6.dll" resourceType="Either" responseBufferLimit="0" />

                            <add name="cfswfHandler" path="*.cfswf" verb="*" modules="IsapiModule" scriptProcessor="D:\JRun4\lib\wsconfig\jrun_iis6.dll" resourceType="Either" responseBufferLimit="0" />

                            <add name="cfrHandler" path="*.cfr" verb="*" modules="IsapiModule" scriptProcessor="D:\JRun4\lib\wsconfig\jrun_iis6.dll" resourceType="Either" responseBufferLimit="0" />

                            <add name="cfcHandler" path="*.cfc" verb="*" modules="IsapiModule" scriptProcessor="D:\JRun4\lib\wsconfig\jrun_iis6.dll" resourceType="Either" responseBufferLimit="0" />

                            <add name="cfmlHandler" path="*.cfml" verb="*" modules="IsapiModule" scriptProcessor="D:\JRun4\lib\wsconfig\jrun_iis6.dll" resourceType="Either" responseBufferLimit="0" />

                            <add name="cfmHandler" path="*.cfm" verb="*" modules="IsapiModule" scriptProcessor="D:\JRun4\lib\wsconfig\jrun_iis6.dll" resourceType="Either" responseBufferLimit="0" />

                            <add name="jwsHandler" path="*.jws" verb="*" modules="IsapiModule" scriptProcessor="D:\JRun4\lib\wsconfig\jrun_iis6.dll" resourceType="Either" responseBufferLimit="0" />

                            <add name="jspHandler" path="*.jsp" verb="*" modules="IsapiModule" scriptProcessor="D:\JRun4\lib\wsconfig\jrun_iis6.dll" resourceType="Either" responseBufferLimit="0" />

                        </handlers>

                        <defaultDocument>

                            <files>

                                <add value="index.cfm" />

                            </files>

                        </defaultDocument>

                        <staticContent>

                            <mimeMap fileExtension=".air" mimeType="application/vnd.adobe.air-application-installer-package zip" />

                        </staticContent>

                    </system.webServer>

                    </configuration>

                     

                    Here is the welcome-file-list section from the web.xml file on the ColdFusion server:

                     

                    <welcome-file-list id="WelcomeFileList_1034546870672">

                        <welcome-file>index.cfm</welcome-file>

                        <welcome-file>index.html</welcome-file>

                        <welcome-file>index.htm</welcome-file>

                    </welcome-file-list>

                     

                    Here is the 'wildcard' servlet-mapping that I added to the web.xml file on the ColdFusion server that made it work but what else does it do?

                     

                    <servlet-mapping id="coldfusion_mapping_20">

                              <servlet-name>CfmServlet</servlet-name>

                              <url-pattern>*</url-pattern>

                    </servlet-mapping>

                    • 7. Re: Default document not being processed when not included in URL
                      Charlie Arehart Adobe Community Professional & MVP

                      Yep, the external web server connector would indeed refer to the web.xml. It looks at its indications for which file extensions CF should use.

                       

                      (CF Bar bet: many people think it’s the handler mappings in IIS that control what extensions are passed to CF, but that’s not so. Indeed, those are really more a “vestigial tail” in the body of CF, leftover from the way that things used to be done in IIS 5, before IIS6 added the “wildcard mapping” feature, so that technically now all requests for all extensions are indeed passed to the web server connector, and it checks to see what extensions CF says it wants to handle.)

                       

                      As for your observation that you need the rewrite rule, ok. But I’m asking: what if you disable all IIS rewrite rules? I just wonder if perhaps some other one you have may be getting in the way here. If you’re saying you’ve done that, and that the ONLY difference between this server and the one where you are not using distributed mode, then I agree it would seem that’s the cause. I just have no experience to say, but I will say that I’ve also not heard that ever reported as a “problem” with distributed mode.

                       

                      Finally, as for your last point, that is interesting, and yes, as discussed above (which I wrote before I got to the bottom of your note), that would indeed cause CF to try to process all file extensions, which you would not want. But it begs a question: why would adding THAT make things now suddenly work? If the default document is passing in index.cfm, it should be handled by the existing web.xml declaration for *.cfm.

                       

                      So something definitely seems very odd with your setup. Since I have no experience with distributed mode, I think I will have to bow out as I have nothing more to add. Let’s hope that perhaps Steven Erat (who frequents this forum and does have lots of experience with distributed mode) might chime in eventually for you.

                       

                      /charlie

                      • 8. Re: Default document not being processed when not included in URL
                        Charlie Arehart Adobe Community Professional & MVP

                        Miguel, that web.config definition of the defaultdocument looks ok, of course. But it made me think of a couple of other things:

                         

                        - first, have you confirmed that a default index.htm file is also found and executed? If you put one in the docroot, and change the iis “default document” settings page for the site so that the index.htm is listed in order above index.cfm? It just seems worth making sure that this is really a CF problem after all. It could instead be IIS not running any at all.

                        - along those lines, on that “default document” settings page for the site, note in the top right corner there is an “enable” or “disable” link. Does yours say “enable”? If so, the feature is disabled. (Note that I am NOT referring to when you have selected a given default document (whereby you also see “move up” and “move down” options on the right), but rather when you first come into that page.

                        - also, look in the modules page for the site and confirm that you see a DefaultDocumentModule listed.

                         

                        Hope that helps.

                         

                        /charlie

                        1 person found this helpful
                        • 9. Re: Default document not being processed when not included in URL
                          Miguel-F Level 3

                          Charlie Arehart wrote:

                           

                          Yep, the external web server connector would indeed refer to the web.xml. It looks at its indications for which file extensions CF should use.

                           

                          (CF Bar bet: many people think it’s the handler mappings in IIS that control what extensions are passed to CF, but that’s not so. Indeed, those are really more a “vestigial tail” in the body of CF, leftover from the way that things used to be done in IIS 5, before IIS6 added the “wildcard mapping” feature, so that technically now all requests for all extensions are indeed passed to the web server connector, and it checks to see what extensions CF says it wants to handle.)

                           

                          It's interesting that you mention this because I did believe that it was IIS passing the extensions to CF.  I did notice something in IIS however that seems to correlate with what you are saying.  In IIS if you look at the Handler Mappings in the "ordered list" view, the wildcard mapping is indeed listed first.  Above *.cfm and the others.  If that is the case then it seems that would cause ALL requests to be passed to the connector.  Which is what you are saying.  I have also seen this in the web connector's log file.  Very interesting indeed.

                           

                           

                          Charlie Arehart wrote:

                           

                          As for your observation that you need the rewrite rule, ok. But I’m asking: what if you disable all IIS rewrite rules? I just wonder if perhaps some other one you have may be getting in the way here. If you’re saying you’ve done that, and that the ONLY difference between this server and the one where you are not using distributed mode, then I agree it would seem that’s the cause. I just have no experience to say, but I will say that I’ve also not heard that ever reported as a “problem” with distributed mode.

                          I am only running the one rewrite rule, so all of them have been disabled.  The only reason I am using url rewrite is to try and get this working.  And I also agree with you that I have not heard nor have I found anyone else reporting this problem with running in distributed mode.  Although everything I am finding about distributed mode seems to be from years ago.  I have another thought that perhaps Windows 2008's enhanced security settings may be playing a part in this.  I mean that Windows 2008 comes with more security and more things disabled than Windows 2003 did.  Maybe that is playing a role here????

                           

                           

                          Charlie Arehart wrote:

                           

                          Finally, as for your last point, that is interesting, and yes, as discussed above (which I wrote before I got to the bottom of your note), that would indeed cause CF to try to process all file extensions, which you would not want. But it begs a question: why would adding THAT make things now suddenly work? If the default document is passing in index.cfm, it should be handled by the existing web.xml declaration for *.cfm.

                           

                          So something definitely seems very odd with your setup. Since I have no experience with distributed mode, I think I will have to bow out as I have nothing more to add. Let’s hope that perhaps Steven Erat (who frequents this forum and does have lots of experience with distributed mode) might chime in eventually for you.

                          Well I'm assuming that wildcard mapping that I added made it work because CF now told the connector that it would indeed handle the file.  I mapped the wildcard to the CfmServlet which made it process like a ColdFusion template which made it work.  But it would not work for non-coldfusion file types.

                           

                          All of this keeps bringing me back to my initial concern (and you mentioned this as well), non of this should be necessary and ColdFusion should work with the default document out of the box.  I'm afraid there is something wrong with my setup.

                          • 10. Re: Default document not being processed when not included in URL
                            Miguel-F Level 3

                            Charlie Arehart wrote:

                             

                            Miguel, that web.config definition of the defaultdocument looks ok, of course. But it made me think of a couple of other things:

                             

                            - first, have you confirmed that a default index.htm file is also found and executed? If you put one in the docroot, and change the iis “default document” settings page for the site so that the index.htm is listed in order above index.cfm? It just seems worth making sure that this is really a CF problem after all. It could instead be IIS not running any at all.

                            - along those lines, on that “default document” settings page for the site, note in the top right corner there is an “enable” or “disable” link. Does yours say “enable”? If so, the feature is disabled. (Note that I am NOT referring to when you have selected a given default document (whereby you also see “move up” and “move down” options on the right), but rather when you first come into that page.

                            - also, look in the modules page for the site and confirm that you see a DefaultDocumentModule listed.

                             

                            Hope that helps.

                             

                            /charlie

                             

                            Charlie, thanks so much for your insight again.  I will verify these settings when I get back to work on Monday.  There is one other thing that I witnessed in the log files yesterday.  I have enabled verbose logging for the web connector.  I ran a request through this server without specifying "index.cfm" in the URL.  I could see in the web connector logfile that the request came in as "/" and was passed to ColdFusion.  ColdFusion then responded with "no match found" and returned a 404.  I tried the same thing on a server that is NOT running distributed mode (IIS and CF on same server).  Again I saw the request was passed to ColdFusion as "/" and ColdFusion responded with "no match found".  However, right after that subsequent request was made to ColdFusion as "/index.cfm" and of course that matched the "*.cfm" mapping and it worked.  I don't know where that additional index.cfm request came from; IIS or CF?  If that same thing would happen on the distributed server setup then it would work as well.  In fact that is what I am doing with the URL Rewrite but I shouldn't need to.

                             

                            I will dig into this further on Monday.  Again, thank you for your help.  I will report back.

                            • 11. Re: Default document not being processed when not included in URL
                              Charlie Arehart Adobe Community Professional & MVP

                              Yep, good point on a possible implication of Win2k8’s tighter security.

                               

                              /charlie

                              • 12. Re: Default document not being processed when not included in URL
                                Charlie Arehart Adobe Community Professional & MVP

                                Well, without studying things more I’m just speculating, but it seems to suggest that it’s just not doing the default document at all, so checking into those settings on Monday may be the answer, but maybe not. Looking forward to seeing what you find.

                                 

                                 

                                 

                                /charlie

                                • 13. Re: Default document not being processed when not included in URL
                                  Miguel-F Level 3

                                  Charlie Arehart wrote:

                                   

                                  Miguel, that web.config definition of the defaultdocument looks ok, of course. But it made me think of a couple of other things:

                                   

                                  - first, have you confirmed that a default index.htm file is also found and executed? If you put one in the docroot, and change the iis “default document” settings page for the site so that the index.htm is listed in order above index.cfm? It just seems worth making sure that this is really a CF problem after all. It could instead be IIS not running any at all.

                                   

                                  I changed the order of the default document in IIS and placed an index.htm in the webroot on the IIS server and in the WAR on the CF server and in a copy of the IIS server's directory structure on the CF server.  When I made the request the index.htm file from the IIS server was displayed.  I checked the web connector's log file and it shows the initial request as "/" and then CF returning no match found but then I see that subsequent request for "/index.htm" and it returns a 200.  Why isn't it doing that for "index.cfm" files???????

                                   

                                   

                                  Charlie Arehart wrote:

                                   

                                  - along those lines, on that “default document” settings page for the site, note in the top right corner there is an “enable” or “disable” link. Does yours say “enable”? If so, the feature is disabled. (Note that I am NOT referring to when you have selected a given default document (whereby you also see “move up” and “move down” options on the right), but rather when you first come into that page.

                                  I verified on the default document settings page that the option is enabled.  It shows the  "Disable" link.

                                   

                                   

                                  Charlie Arehart wrote:

                                   

                                  - also, look in the modules page for the site and confirm that you see a DefaultDocumentModule listed.

                                   

                                  I have confirmed that the modules page does have the DefaultDocumentModule listed as well.

                                  • 14. Re: Default document not being processed when not included in URL
                                    Miguel-F Level 3

                                    WOW!  May have just discovered the issue although I don't recall having to do this in the past.  Based on the behavior I saw with the "index.htm" page I created an empty "index.cfm" page on the IIS server.  Now it appears to be working. Checking the web connector's log file I see the initial request for "/" and no match found but then it is requesting "/index.cfm" and it is working.  DOH!!!!

                                     

                                    I remember reading on the distributed mode setup that the ColdFusion files must reside on the web server and the CF server but I swear I have set this up before without doing so.  So the whole problem may be that I did not have the ColdFusion files (even empty stub files seem to work) on the web server.

                                     

                                    Can anyone confirm that this is required to run in distributed mode? 

                                     

                                    I will continue testing to see what I can find.  Charlie thanks so much for your persistence on this!

                                    • 15. Re: Default document not being processed when not included in URL
                                      Charlie Arehart Adobe Community Professional & MVP

                                      Good to hear you may be on the trail. I don’t have any machine set with “distributed CF” setup to test things, but perhaps others will.

                                       

                                       

                                       

                                      /charlie

                                      • 16. Re: Default document not being processed when not included in URL
                                        Miguel-F Level 3

                                        Well I have re-read the VERY OLD distributed mode setup documentation http://www.adobe.com/support/coldfusion/administration/cfmx_in_distributed_mode/cfmx_in_di stributed_mode02.html

                                         

                                        It does not state that the files need to reside on both servers but only that the directory structure needs to be the same (see the note at the bottom of that page).

                                         

                                        Another note: during all of this I have also added a ColdFusion mapping for "/" pointing to the web root on the CF server.  Is this good/bad?  This also came from that OLD setup page (step number 9).

                                        • 17. Re: Default document not being processed when not included in URL
                                          Miguel-F Level 3

                                          I was able to remove the "/" mapping that we added in the ColdFusion administrator.  After doing so the page returned an access denied error attempting to read from the default "CustomTags" directory.  I added access to that directory in our ColdFusion sandbox and it is working again.

                                           

                                          I just seem to recall that having a mapping for "/" was a bad idea or at least was not necessary anymore.  So far it appears to be working without it.  More testing...

                                          • 18. Re: Default document not being processed when not included in URL
                                            Charlie Arehart Adobe Community Professional & MVP

                                            Hey Miguel, just one quick observation: the CF Admin mappings have absolutely no connection at all to processing of URLs against CF.  That is entirely down to mappings in the web server, The CF admin mappings are only used for file references within CFML, generally by things like cfinclude, or invocation of CFCs with cfinvoke/cfobject/createobject, and so on.

                                             

                                            So I’d be very surprised if there’s any connection with your problems and the mappings. Indeed, I’d think any such impact would reflect more a problem of failures of CFML processing, rather than failures in communication between the web server and CF. Hope that helps.

                                             

                                            BTW, I’ve put word out to see if some other folks interested in this topic (of “distributed mode”) might be able to take a few minutes to chime in if they may help.

                                             

                                            /charlie

                                            • 19. Re: Default document not being processed when not included in URL
                                              Miguel-F Level 3

                                              Yes Charlie, agreed!  I don't believe the ColdFusion mapping had anything to do with our original issue but just trying to document everything I have been doing with this in case anyone else finds this post when trying to get distributed mode working. 

                                               

                                              The limited documentation that there is on setting up distributed mode states that you need that "/" mapping when in fact it appears that you do not.  However, as I stated, since we are running sandbox security I did have to include read/execute access to the default CustomTags directory to get passed the subsequent error.

                                               

                                              I know that Adobe support sometimes chimes in on these discussions and I was hoping that they would in this case, but not yet.  I would just like to add that running ColdFusion in distributed mode is still included with the ColdFusion documentation and is also suggested if you follow the ColdFusion 9 lock down guide (which I did).  So even though I know that the online ColdFusion documentation just seems to keep moving forward from version to version I assume this setup is still supported.  Right Adobe?

                                               

                                              Link to CF 9 lockdown guide: http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/products/coldfusion/pdfs/910 25512-cf9-lockdownguide-wp-ue.pdf

                                               

                                              Link to CF 9 installation document stating that the CF server need not reside on the web server (among other references): http://help.adobe.com/en_US/ColdFusion/9.0/Admin/WSc3ff6d0ea77859461172e0811cbf363a5d-7ffc .html

                                              • 20. Re: Default document not being processed when not included in URL
                                                Charlie Arehart Adobe Community Professional & MVP

                                                Miguel, a few more thoughts.

                                                 

                                                First, about your last paragraph, that page you point to in the manual does not discuss distributed mode. Did you mean another page? If you are referring to its point 9, that’s not about distributed mode, either. That’s about the fact that even once you configure CF to use an external web server, it still does refer to the webroot for CF’s internal web server when processing CFM pages (a surprise for many) and it’s referring to how it does NOT do that for static pages (once you stop using the built-in web server, which is what the page is about: switching from the internal to an external web server.)

                                                 

                                                As for the CF docs still discussing distributed mode, I’ll argue that in fact they do not. I was discussing this in fact with Adobe (and some other folks, including Steven Erat), where I noted that  the CF install manual (9 and 10) says "For more information on the Web Server Configuration Tool, including information on multihoming and distributed usage, see the Configuring and Administering ColdFusion guide." But then that manual (in 9 and 10) makes no reference to "distributed" at all, though it does have a section on "multhoming" (but it makes no mention of running CF and the web server on different boxes).

                                                 

                                                It really feels like the reference was dropped at some point. Steven concurred and we hoped that someone from Adobe might pick up that ball and run with it. (Steven no longer works on the CF team, though he is back to working at Adobe.)

                                                 

                                                Finally, about the lockdown guide, I wouldn’t say it “recommends distributed mode”. It mentions it as “something you might also consider”. But it too points just to those old CFMX-era technotes.

                                                 

                                                Steven had also agreed that much more updated info would be beneficial, and he was thinking of doing more on that (whether on his own blog or perhaps as a contribution to the CF docs.) I’ve not heard more about that for a while, though. I look forward to whatever he may do. HE’s a really valuable resource for the CF community.

                                                 

                                                 

                                                 

                                                And again, I’ve asked him if he might be able to chime in here at some point.

                                                 

                                                /charlie

                                                • 21. Re: Default document not being processed when not included in URL
                                                  Miguel-F Level 3

                                                  Charlie Arehart wrote:

                                                   

                                                  Miguel, a few more thoughts.

                                                   

                                                  First, about your last paragraph, that page you point to in the manual does not discuss distributed mode. Did you mean another page? If you are referring to its point 9, that’s not about distributed mode, either. That’s about the fact that even once you configure CF to use an external web server, it still does refer to the webroot for CF’s internal web server when processing CFM pages (a surprise for many) and it’s referring to how it does NOT do that for static pages (once you stop using the built-in web server, which is what the page is about: switching from the internal to an external web server.)

                                                   

                                                  I was actually referring to the Note under point 6.

                                                   

                                                  "Note: The server or cluster does not have to reside on the web server computer. In this case, enter the IP address or server name of the remote computer in the JRun Host field."

                                                   

                                                  I realize it does not say "distributed mode" but isn't this what that note is referring to?

                                                  • 22. Re: Default document not being processed when not included in URL
                                                    Charlie Arehart Adobe Community Professional & MVP

                                                    Ah, ok, it may. I was indeed looking for that phrase, and in not finding it, read the page but missed that point.

                                                     

                                                    Again, I don’t have any experience with DM to be able to say if that’s referring to that. Sounds like it. You have more experience on that than me. Would you say so?

                                                     

                                                     

                                                     

                                                    /charlie

                                                    • 23. Re: Default document not being processed when not included in URL
                                                      Miguel-F Level 3

                                                      Ha!  That's a good one   Well I am definitely learning more about it - again.  That's the "funny" thing.  I have been working with ColdFusion since version 4.5 and have actually run in distributed mode on probably all of the "MX" versions at one point or another  (except CF 10, haven't gone there yet).  I don't ever recall having this issue before so I'm pretty sure it has something to do with our setup/configuration.  (Although my memory isn't as good as it used to be) 

                                                      • 24. Re: Default document not being processed when not included in URL
                                                        ACS LLC Level 1

                                                        I know this is an old thread but wondering if anybody can point me in the right direction as I have the same problem but in a single server setup

                                                         

                                                        I did have CF8 on the server (Win server 2008 R2 - IIS7.5), working perfectly. I uninstalled it, dropped CF2016 on there, and now I'm getting 404 errors on the CFM pages. On one domain I can type index.cfm in manually and the page comes up but for others it won't.

                                                         

                                                        Aside from the advise to not do this on Xmas day when any chance of support is almost nil, does anybody have any ideas?

                                                         

                                                        Thanks

                                                         

                                                        Mark

                                                        • 25. Re: Default document not being processed when not included in URL
                                                          Dave Watts Adobe Community Professional

                                                          There are several things that hook IIS to CF, all wrapped up in the connector configuration. The easiest way to resolve this in most cases is just to uninstall and reinstall the connector for the IIS virtual server in question. If that's not going to be an option, check the following places in the IIS Management Console. Let's say you have four IIS virtual servers. You should see the following values:

                                                           

                                                          ISAPI Filters - look at tomcat entry, and make sure it points to D:\ColdFusion11\config\wsconfig\4\isapi_redirect.dll.

                                                          Handler Mappings - look at all CF resources, but especially cfmHandler. Make sure it points to D:\ColdFusion11\config\wsconfig\4\isapi_redirect.dll.

                                                          jakarta virtual directory - make sure it exists, and points to D:\ColdFusion11\config\wsconfig\4

                                                           

                                                          It is possible, though unlikely, for these to not point to the same place. When that happens, I've seen cases where you get 404 errors for default documents.

                                                           

                                                          Dave Watts, CTO, Fig Leaf Software

                                                          • 26. Re: Default document not being processed when not included in URL
                                                            ACS LLC Level 1

                                                            Hi Dave,

                                                             

                                                            Thanks for the input. Unfortunately I'm not server guru, I was thrown into it years ago and so I have to find my way through this.

                                                             

                                                            I've uninstalled and reinstalled CF 3 times to try a few tiny changes with no luck. On the last one I noticed that the default web site was still the default for IIS but I was using a different directory, I set that to my actual root and reinstall, but no luck.

                                                             

                                                            I'm not sure how I would uninstall and reinstall the connectors

                                                             

                                                            Looking at the default web site, the ISAPI filters are set to C:\ColdFusion11\config\wsconfig\4\isapi_redirect.dll.This is also there for my other domains.

                                                             

                                                            Handler mappings are set to C:\ColdFusion2016\config\wsconfig\1\isapi_redirect.dll although I don't see these in the individual sites settings.

                                                             

                                                            I'm unsure where I'd look for that virtual directory.

                                                             

                                                            Regards

                                                             

                                                            Mark

                                                             

                                                             

                                                             

                                                             

                                                             

                                                             

                                                            • 27. Re: Default document not being processed when not included in URL
                                                              ACS LLC Level 1

                                                              I found the virtual directory and it's there (check a particular domain)

                                                               

                                                              Btw The links I posted above were copies from your post, I actually have ColdFusion2016 so it's not a CF11 directory, but either way, they are there

                                                              • 28. Re: Default document not being processed when not included in URL
                                                                ACS LLC Level 1

                                                                FIXED!

                                                                 

                                                                I added an entry for *.cfm to the hnadler mappings for the domain in SCRIPT MAPPINGS

                                                                 

                                                                I'd tried this previously and it did not work, maybe I picked the wrong type and not SCRIPT MAPPINGS

                                                                 

                                                                So it looks like there are three of them to add for CFC, CFM and CFML

                                                                 

                                                                That\s a big of a kicker if I have to add them manually to each and every domain, something must be going wrong in the install process

                                                                 

                                                                Any ideas how I can add this globally without a ton of manual work?

                                                                 

                                                                Thanks

                                                                 

                                                                Mark

                                                                • 29. Re: Default document not being processed when not included in URL
                                                                  Dave Watts Adobe Community Professional

                                                                  What I've always done is simply uninstall all connectors, then reinstall them again. That's always worked for me. But if it doesn't work for you, you'd have to make edits to the server configuration directly. In IIS, there are two places where these edits might go: web.config and applicationHost.config. There's also a tool to let you apply changes to IIS via the command line, called appcmd.exe. That's what I'd look at if I had to do it manually.

                                                                   

                                                                  Dave Watts, CTO, Fig Leaf Software

                                                                  • 30. Re: Default document not being processed when not included in URL
                                                                    ACS LLC Level 1

                                                                    To add to this, I have some domains that show up under DEFAULT SITE, they have the handlers, but they are also in IIS outside of the default site and there are others that are not under the default.

                                                                     

                                                                    None of them outside of the default of the handlers

                                                                     

                                                                    I ran the CF web configuration tool on ALL sites, it didn't add them

                                                                    • 31. Re: Default document not being processed when not included in URL
                                                                      Dave Watts Adobe Community Professional

                                                                      "To add to this, I have some domains that show up under DEFAULT SITE, they have the handlers, but they are also in IIS outside of the default site and there are others that are not under the default."

                                                                       

                                                                      I don't know what this means.

                                                                       

                                                                      Dave Watts, CTO, Fig Leaf Software

                                                                      • 32. Re: Default document not being processed when not included in URL
                                                                        ACS LLC Level 1

                                                                        I wonder if it's the way I've set up the domains in IIS. If I can get them all under the default site, it would add them, it's just ignoring the domains that are not listed under the default.

                                                                         

                                                                        Cancel the above idea, that won't work the sites/domains need to be added in separately so that the bindings etc can be set

                                                                        • 33. Re: Default document not being processed when not included in URL
                                                                          ACS LLC Level 1

                                                                          Can I email a screenshot directly to you?

                                                                          • 34. Re: Default document not being processed when not included in URL
                                                                            Dave Watts Adobe Community Professional

                                                                            Sure. I can't guarantee I'll respond immediately, though. My email address is dwatts@figleaf.com.

                                                                             

                                                                            Dave Watts, CTO, Fig Leaf Software

                                                                            • 35. Re: Default document not being processed when not included in URL
                                                                              ACS LLC Level 1

                                                                              I realise what I had done, while playing around I set the default web site to the root of where all my sites are (outside of %SystemDrive%\inetpub\wwwroot ) , which then showed all my directories, and most likely exposed the secure areas, I've put it back as is.

                                                                               

                                                                              So what I was looking at was the default web site is getting the correct connectors, but none of my domains are getting them

                                                                               

                                                                              As I have about 40 domains in there due to some sub domains, manually adding them would be a massive p.i.t.a.

                                                                               

                                                                              I don't understand why CF's installer is not putting them in.

                                                                               

                                                                              Is there no way in IIS to globally apply them to all domains?

                                                                              • 36. Re: Default document not being processed when not included in URL
                                                                                ACS LLC Level 1

                                                                                I will shoot a screenshot over to you. Xmas day - 3pm, My wife will kill me if I don't join for dinner! It looks like I'll have to put the snapshot back to get the server going and then start from scratch later on tonight or first thing in the morning.

                                                                                 

                                                                                If I could just get those handlers onto all domains I'd be in good shape

                                                                                • 37. Re: Default document not being processed when not included in URL
                                                                                  Charlie Arehart Adobe Community Professional & MVP

                                                                                  Bummer to hear this is messing up your Christmas. Hopefully this will help (and though it's Christmas morning, I had time to offer this reply. Sorry that it's lengthy, but if it was an easy problem to solve, you wouldn't be struggling so.)

                                                                                   

                                                                                  The problem is almost certainly the previous configuration of IIS done by CF8 (or CF9). This is nearly ALWAYS a problem when you try to put CF10 or above on a machine that had CF9 or earlier.

                                                                                   

                                                                                  There are two things you can check, to confirm what’s amiss. (Fixing these can be a good bit more challenging.) The first is about mime types (and the possibility of their being an AIR mime type). The second is about handler mappings and/or isapi filters (and the possibility that there are left over CF8 mappings that need to be removed). I suspect the latter is why you’re seeing the challenge you are (where you feel you need to configure “every site”.) Let me explain both, as usually both happen if one does.

                                                                                   

                                                                                  It’s also important (for solving this problem) to understand some aspects of how IIS configuration works (in terms of the files where the configuration works, and the inheritance mechanism IIS uses).

                                                                                   

                                                                                  Some people understand only 1 or 2 of the 3 things above, or find resources only explaining one of the three or only very briefly, and they “try to fix things” and find that it “doesn’t work”, and they wonder why CF doesn’t work, and how anyone ever can get things working…So it takes time to explain things. Hope you’ll stick with me to the end here.

                                                                                   

                                                                                  1) First, if you look in IIS at the site that is not working, and you open the “mime types” feature for that site, it will likely list hundreds in alphabetical order. Is there one for “.air”? If so, that’s something from CF9 and before that is nearly always not needed (unless you serve up Adobe AIR apps from that web site).

                                                                                   

                                                                                  How do you solve that? Well one way is that you could remove that from the site, and see if things work. For some problems, that is all that is needed.

                                                                                   

                                                                                  The other way to solve this problem, if you know that you don’t need the “.air” mimetype for ANY sites, is you could probably remove it from the top-level (server-level), which also has a “mime types” feature. If you remove it from there, and find that it IS gone from the site in question (and better if you find it gone from all sites that you check), then the setting was only there, and was being inherited by all the rest. If that’s it, great.

                                                                                   

                                                                                  But if you remove it from the server level, but still find it at the site level, then it means your old CF version (or someone) defined it at the site level. In that case, you would need to remove it from the site level (and all site-level mime type features where it may still exist).

                                                                                   

                                                                                  2) BTW, if you may be interested in resolving this by modifying instead the underlying IIS xml config file that controls this, it either be defined either in the web.config of the root of some or all web sites, or it could be defined in the server-wide applicationhost.config (found in C:\Windows\System32\inetsrv\Config). The web.config file would override whatever is in the applicationhost.config. And within that file, there are also a set of elements that represent things at the server level (setting the default for all sites), and then optionally a set of elements at one or more site levels. More on that in a moment, as it’s very commonly a much bigger challenge when one moves from CF9 or before to CF10 or above, on the same machine.

                                                                                   

                                                                                  3) The second, common problem is about handler mappings. If you look in IIS for the site in question, at the “handler mappings” feature, do you see any cfm file handlers that point to your CF8? Or if you look at its “isapi filters”, is there one for CF8? If there is, then you want to remove those (any isapi filters pointing to 8, and any and all handler mappings pointing to cf8). But again how you would do that depends on IIS configuration settings and its inheritance.

                                                                                   

                                                                                  First, look at the server level, and see if there were either CF8 isapi filters and/or handler mappings there. If so, if you remove those from there, do they then disappear also from the site in question (indeed, all sites)? If so, then great. Test your site. Does it work? If so, great.

                                                                                   

                                                                                  If not, then you would need to next check things at the site level, and remove it/them from that site.

                                                                                   

                                                                                  And if that’s the case, then THAT’s why you found that it was not enough to just run the CF2016 web server config tool. It only can configure things for “all sites” (which means configuring the server-level settings, presuming things are not over-ridden at any site levels), or it can configure them at each site’s level.

                                                                                   

                                                                                  Either way, even that tool may not help if the problem is that you have still CF8-versions (or if someone else had CF9 versions) of the isapi filter and/or handler mapping settings. It doesn’t know to remove those for you.

                                                                                   

                                                                                  4) Worse, and the most cause of the kind of challenges you’re describing, is that you may find if you dig into the IIS applicationhost.config file that CF8 had created a separate duplicate settings for EVERY site (this is NOT the way CF10 and above would do it, and they don’t check to see if you previously had that).

                                                                                   

                                                                                  Look toward the bottom of the file, and see if there is a “location path” XML element (with possibly several dozen handler elements) for each of many (or all) sites. If so, it’s that the CF8 connector has (or CF9 would have also) duplicated ALL the handlers elements--the handler mappings for each file extension.

                                                                                   

                                                                                  The difference is that your CF2016 web connector tool (or anyone with CF10 and above would find that it) instead configures only what it presumes is needed for “all sites” to be configured—it has put in the handlers elements for CF files at the TOP level XML element (the one for location path=””, for “all sites”), while all these subsidiary “locations paths” (one for each site) are STILL pointing the sites to CF8.

                                                                                   

                                                                                  I’m not saying this is DEFINITELY your problem, but I have seen it dozens of times over the years.

                                                                                   

                                                                                  5) So how would one (who understood and confirmed all the above) fix things? Well, if all the handler elements within each of those lower-level handler elements was confirmed to be identical to each other (and identical to the one at the top level, for “all sites”, at least before the CF10, 11, or 2016 values were added), then all those lower-level handler sections can be removed. THEN the top-level ones will be inherited. Same for the isapi filters.

                                                                                   

                                                                                  If they are NOT all identical (at the site level within the applicationhost.config), then instead one would have to surgically remove each of the CF8 handler mappings from each site. Really, though, it's almost always as important to remove the duplicates of all the other mappings. It just is very challenging. (Removing any duplicate isapi filters at the site level within the file should be a good bit easier.)

                                                                                   

                                                                                  If all that sounds overwhelming, I will say that I can take your applicationhost.config file and look for and remove the problems above, in likely less than an hour. (Unfortunately, these things can’t be easily modified in an automated fashion…or at least such a tool would need to be quite aware of these possibilities and flexible enough to anticipate and handle all the variabilities.)

                                                                                   

                                                                                  6) One last thing: this might possibly have been resolved if before you installed CF10 or above (and before uninstalling CF9 or below), you had run the web server config tool (in your case for CF8) to first REMOVE all the configuration it had done. That MIGHT have set things back to a nice starting point, but in truth many people over the years (since CF8 came out over 10 years ago) have done lots of manual tweaks to get things working, so that even that step might not have gotten things back to a good "square one".

                                                                                   

                                                                                  Hope that helps. (And the complexity should explain why you won’t find this to be well-discussed elsewhere.)

                                                                                   

                                                                                  /charlie

                                                                                  • 38. Re: Default document not being processed when not included in URL
                                                                                    ACS LLC Level 1

                                                                                    Hi Charlie

                                                                                     

                                                                                    Many, many thanks for taking the time to post such an in-depth response. I'd come to the conclusion that it was a remnant of the CF8 install, but picking it off with no experience of this issue would certainly be a challenge.

                                                                                     

                                                                                    It's getting a little late here and I'm concerned I'll end up opening a can of worms late at night, so I'll likely start this bright and early tomorrow and report back on my findings.

                                                                                     

                                                                                    You did miss off the other potential step, reinstall the server ;-) . Ummm. I wonder what would happen if I just removed IIS and then put it back.

                                                                                     

                                                                                    I'll try to clean up as much as possible and see where it takes me

                                                                                     

                                                                                    Happy holiday and thanks again

                                                                                     

                                                                                    Mark

                                                                                    • 39. Re: Default document not being processed when not included in URL
                                                                                      Charlie Arehart Adobe Community Professional & MVP

                                                                                      Well, I would warn that uninstalling iis may not remove the entries in applicationhost.config. It may leave it there presuming it would reuse it if reinstalled. Same (especially) with any web.config files in your site web roots.

                                                                                      Typically the kind of cleanup I do for folks gets them going without losing other possible changes that perhaps should stay in place.  

                                                                                      /Charlie

                                                                                      null

                                                                                      1 2 Previous Next