0

I have a (VB) web site application that calls an ASMX service via an AJAX control (using AjaxControlToolkit) to pre-fill a name search. However, that call always returns an internal server error 500.19 with the error "There is a problem with the resource you are looking for, and it cannot be displayed." All other functionality of the application works. The web site is precompiled and deployed on a two-node Windows 2012 R2/IIS 8.5 cluster. I've tried adding various items to my web.config per other threads, I've deleted the application and recreated it, I've verified database connectivity, I've checked that ASMX handlers exist in the IIS config. Even more befuddling is that this application works in my local Windows 8.1/IIS 8.5 environment and on an IIS 7 test server.

The application runs under an application pool configured for .NET 4.0 and using a pipeline mode of "Integrated." For the sake of testing, I've tried using a 2.0 pool, but then the application doesn't work at all.

The format of the request URL I get an error for is: http://www.example.com/myapplication/EmployeeSearch.asmx/SearchByName

Any ideas what else to look at? Would there be something about the cluster environment causing this issue?

(I know 87,000 people have asked a similar question, but I have yet to find one that solves my issue.)

Update After stepping away for a bit, I came back to this. I was finally able to get more in-depth error information (500.19), though it's still not elucidating enough. Calling the ASMX is the only part of the app that produces this error. I also did a quick version that just uses jQuery to call the service, and it produced the same result. Per below, the config file path is befuddling to me...why would that be the path it uses?

Module: 
    IIS Web Core 
Notification: 
    BeginRequest 
Handler: 
    Not yet determined 
Error Code: 
    0x8007010b 
Config Error: 
    Cannot read configuration file  
Config File: 
    \\?\UNC\0.0.0.0\webcontent\www.example.com-iis\my-application\EmployeeSearch.asmx\SearchByName\web.config 
Requested URL: 
   http://www.example.com:80/my-application/EmployeeSearch.asmx/SearchByName 
Physical Path
   \\0.0.0.0\webcontent\www.example.com-iis\my-application\EmployeeSearch.asmx\SearchByName 
Logon Method
   Not yet determined 
Logon User
   Not yet determined 
Request Tracing Directory
   C:\inetpub\logs\FailedReqLogFiles 
Nicole S.
  • 345
  • 1
  • 3
  • 12
  • DId you ever get a chance to fix this? Are you by any chance using NFS as the shared storage for your IIS cluster? [here](http://blogs.msdn.com/b/webtopics/archive/2010/03/08/troubleshooting-http-500-19-errors-in-iis-7.aspx) you can find a possible culprit: From the article: "...We have seen this error (500.19 0x8007010b) when the site content is pointing to some Non-NTFS File system. In such cases, it is advisable to test it by placing the content on a Windows/NTFS share..." – NublaII Oct 23 '15 at 10:55
  • Thanks for the comment. I have not resolved this one yet. I had seen something in my searches about looking at the shared storage, but wasn't sure what to do with it or where to troubleshoot from that point as file systems are far from my area of expertise. But, yes, we do use CIFS shared storage for the cluster. For now, I'm going to send this on to another person who will know more about that part of the setup. – Nicole S. Oct 23 '15 at 19:04
  • We have the same problem. I'm also searching for a solution. If I find anything I'll post it here. – NublaII Oct 23 '15 at 19:09
  • The issue remains, though I was wrong on the the shared storage type - it's a NTFS share. What part of our configuration causes the issue remains a mystery. – Nicole S. Dec 08 '15 at 18:43
  • @NublaII After quite some time, I have resolved my issue. See the posted answer. – Nicole S. Feb 04 '16 at 01:03

1 Answers1

1

The solution, in this case, (after speaking to Microsoft Support) was to set allowSubDirConfig for the application to False.

Now to back up and explain why. This is because of how IIS probes - if set to True or not set at all - for the web.config. It is smart enough to check if a given path/URL (in this case, an ASMX call) is a directory before attempting to retrieve a web.config, but depending on the storage for the application, it may not be able to tell if it is a directory, in which case it defaults to looking for a web.config as if that path is a directory. In my case, we are using a remote NTFS share for storage. Likely the appliance/device or the device driver doesn't support the operation/directory watcher IIS uses to check for the existence of the directory. Setting allowSubDirConfig to False means IIS won't attempt to probe for a web.config file when an ASMX method call is made, which prevents the "Cannot read configuration file" error I was getting.

Nicole S.
  • 345
  • 1
  • 3
  • 12
  • even though we're using NFS (as opposed to NTFS on your case) your solution did fix our problem.I already marked you as correct response. – NublaII Mar 04 '16 at 12:19
  • This solution also worked for me, but be sure to edit your applicationHost.config file with a 64bit text editor, or you will run into a situation where your changes to applicationHost.config don't seem to take effect even after an iisreset https://stackoverflow.com/questions/36641621/applicationhost-config-not-showing-changes – Dean L Jun 13 '17 at 00:12