The issue: Server.Transfer is failing with an Access Denied message when IIS is recycled.

To illustrate the problem it will be easiest to just give a few use cases and their maddening results. In cases where Server.Transfer is failing, the call will only succeed once the target page is "preloaded" by calling it directly through an HTTP GET (programatically or from the browser).

1) FAILS

/secure/test1.asp Server.Transfers to /secure/test2.asp. Both include the same files located under the secure directory.

2) FAILS

/secure/test1.asp Server.Transfers to /test/test3.asp. Both include the same files located under the secure directory.

3) SUCCEEDS

/secure/test1.asp Server.Transfers to /test/test4.asp. test4.asp includes files with the same functions, variable declarations, etc. as those included by test1.asp, but the files included by test4.asp are contained within the /test directory.

4) FAILS

/secure/test1.asp Server.Transfers to /test/test5.asp. test5.asp includes files with the same functions, variable declarations, etc. as those included by test1.asp, but the files included by test5.asp are contained within the /test directory.


So the only case where we have a successful Server.Transfer is when the target page is both in a separate directory and includes files within that separate directory. However, once the "failed" pages are preloaded, Server.Transfer works as expected until the server is recycled again.

Sorry for the wordy description, but I wanted to be painfully thorough.

Thx.