G
Guest
I have the following setup:
A website that is completely accessible to a logged-in user. Access control
is handled by a third-party external module implemented as an ISAPI filter.
The /webservices subdirectory contains a public webservice. The ISAPI filter
is configured to ignore this directory, so it is anonymously accessible.
When the application is up and running, everything works as expected.
However if the first access to the application after a restart is made to the
/webservices directory by an anonymous user, I get the following:
[HttpException (0x80004005): Failed to map the path '/webservices'.]
System.Web.Hosting.ISAPIWorkerRequestInProcForIIS6.MapPathSlowUsingIISCore(String path) +240
(complete error message below)
It seems that the IIS can't initialize the application because the current
visiting user doesn't have access to the root directory! Why does MapPath
need the current user to be able to access the web application's root
directory? Is it trying to read web.config in some strange way (if so -
shouldn't this be done directly through the file system instead of through
the IIS)?
If the first access to the application after a restart is made to the root
directory by a regular authenticated user it initializes fine and subsequent
anonmyous access to the /webservices directory works fine as well...
Anyone with enough knowledge of ASP.NET's inner workings to help me out?
---
[HttpException (0x80004005): Failed to map the path '/webservices'.]
System.Web.Hosting.ISAPIWorkerRequestInProcForIIS6.MapPathSlowUsingIISCore(String path) +240
System.Web.Hosting.ISAPIWorkerRequest.MapPath(String path) +419
System.Web.Configuration.HttpConfigurationSystem.ComposeConfig(String
reqPath, IHttpMapPath configmap) +459
System.Web.HttpContext.GetCompleteConfigRecord(String reqpath,
IHttpMapPath configmap) +434
System.Web.HttpContext.GetCompleteConfig() +49
System.Web.HttpContext.GetConfig(String name) +195
System.Web.CustomErrors.GetSettings(HttpContext context, Boolean
canThrow) +20
System.Web.HttpResponse.ReportRuntimeError(Exception e, Boolean canThrow)
+39
System.Web.HttpRuntime.FinishRequest(HttpWorkerRequest wr, HttpContext
context, Exception e) +486
---
A website that is completely accessible to a logged-in user. Access control
is handled by a third-party external module implemented as an ISAPI filter.
The /webservices subdirectory contains a public webservice. The ISAPI filter
is configured to ignore this directory, so it is anonymously accessible.
When the application is up and running, everything works as expected.
However if the first access to the application after a restart is made to the
/webservices directory by an anonymous user, I get the following:
[HttpException (0x80004005): Failed to map the path '/webservices'.]
System.Web.Hosting.ISAPIWorkerRequestInProcForIIS6.MapPathSlowUsingIISCore(String path) +240
(complete error message below)
It seems that the IIS can't initialize the application because the current
visiting user doesn't have access to the root directory! Why does MapPath
need the current user to be able to access the web application's root
directory? Is it trying to read web.config in some strange way (if so -
shouldn't this be done directly through the file system instead of through
the IIS)?
If the first access to the application after a restart is made to the root
directory by a regular authenticated user it initializes fine and subsequent
anonmyous access to the /webservices directory works fine as well...
Anyone with enough knowledge of ASP.NET's inner workings to help me out?
---
[HttpException (0x80004005): Failed to map the path '/webservices'.]
System.Web.Hosting.ISAPIWorkerRequestInProcForIIS6.MapPathSlowUsingIISCore(String path) +240
System.Web.Hosting.ISAPIWorkerRequest.MapPath(String path) +419
System.Web.Configuration.HttpConfigurationSystem.ComposeConfig(String
reqPath, IHttpMapPath configmap) +459
System.Web.HttpContext.GetCompleteConfigRecord(String reqpath,
IHttpMapPath configmap) +434
System.Web.HttpContext.GetCompleteConfig() +49
System.Web.HttpContext.GetConfig(String name) +195
System.Web.CustomErrors.GetSettings(HttpContext context, Boolean
canThrow) +20
System.Web.HttpResponse.ReportRuntimeError(Exception e, Boolean canThrow)
+39
System.Web.HttpRuntime.FinishRequest(HttpWorkerRequest wr, HttpContext
context, Exception e) +486
---