Global.asa problems with IIS 6

D

Dave Anderson

I have one IIS 6 machine that seems to ignore global.asa completely. I can't
get *anything* to fire -- not Session_OnStart(), not typelib declarations.
This is true in the web root as well as in any application folder.

In particular, this is preventing me from loading the ADO 2.8 type library,
but I cannot even force an error by using a malformed GUID.

This is my only machine that appears to have this problem. Any ideas?



--
Dave Anderson

Unsolicited commercial email will be read at a cost of $500 per message. Use
of this email address implies consent to these terms. Please do not contact
me directly or ask me to contact you directly for assistance. If your
question is worth asking, it's worth posting.
 
D

Dave Anderson

Curt_C said:
I havent had an issue with it myself. Few things first.. I'm assuming
that ASP has been enabled in IIS6? Also,nothing has remapped the .ASA
extention to a different dll has it? You said you have it in the root
of the VD/Site AND it's enabled as an App right? Is the App pool
tweaked at all or the standard/default setup?

• ASP is enabled. This is the specific error:

Microsoft JScript runtime error '800a1391'
'adCmdStoredProc' is undefined
/(my path)/(my file).asp, line 56

• The .asa extension maps to \WINDOWS\system32\inetsrv\asp.dll
with verbs: GET,HEAD,POST,TRACE (as does .asp)

• I have the same problem in the root as I do in any application
folder. And by application folder, I mean I used the IIS Manager
to browse to the folder, selected properties and created
application.

• Just to be sure, I created a new Application Pool with defaults,
but this made no difference.



--
Dave Anderson

Unsolicited commercial email will be read at a cost of $500 per message. Use
of this email address implies consent to these terms. Please do not contact
me directly or ask me to contact you directly for assistance. If your
question is worth asking, it's worth posting.
 
B

Bob Barrows [MVP]

Dave said:
. ASP is enabled. This is the specific error:

Microsoft JScript runtime error '800a1391'
'adCmdStoredProc' is undefined
/(my path)/(my file).asp, line 56

. The .asa extension maps to \WINDOWS\system32\inetsrv\asp.dll
with verbs: GET,HEAD,POST,TRACE (as does .asp)

. I have the same problem in the root as I do in any application
folder. And by application folder, I mean I used the IIS Manager
to browse to the folder, selected properties and created
application.

. Just to be sure, I created a new Application Pool with defaults,
but this made no difference.
Are any other ADO constants undefined? I had an issue once where all the ADO
constants EXCEPT adCmdStoredProc were defined by the type library. I have
not seen this issue since ...

Bob Barrows
 
D

Dave Anderson

Bob said:
Are any other ADO constants undefined? I had an issue once where all
the ADO constants EXCEPT adCmdStoredProc were defined by the type
library. I have not seen this issue since ...

I tried a few, but with no luck. And here's where it gets strange: I created
a new web site on port 8000 with the same root directory, and it has no
problems whatsoever.

Now, you might suggest I just replace the old with the new and stop there,
but I am not convinced that this isn't because of a deliberate setting, so I
thought I don't just want to destroy the old in case someone did something
to it deliberately that is causeing this.

I opened two instances of the IIS manager and looked at every setting screen
side-by-side for the two web sites. Except for the port and logging paths,
they are identical.

I then considered the possibility that there is a metabase setting that
differs, but I could find none. In fact, the new site has practically
nothing:

<IIsWebServer Location ="/LM/W3SVC/1765172442"
AuthFlags="0"
LogPluginClsid="{FF160663-DE82-11CF-BC0A-00AA006111E0}"
ServerAutoStart="TRUE"
ServerBindings=":8000:"
ServerComment="New Web Site"</IIsWebServer>

Quite a puzzler. I am going to ask around next week and see if I can get
consent from my team to swap the instances.



--
Dave Anderson

Unsolicited commercial email will be read at a cost of $500 per message. Use
of this email address implies consent to these terms. Please do not contact
me directly or ask me to contact you directly for assistance. If your
question is worth asking, it's worth posting.
 
D

Dave Anderson

I said:
I have one IIS 6 machine that seems to ignore global.asa completely.
I can't get *anything* to fire -- not Session_OnStart(), not typelib
declarations. This is true in the web root as well as in any
application folder.

[Aaron - consider adding to http://aspfaq.com/show.asp?id=2076
(c) you are looking at the wrong global.asa ]

OK, I have isolated the problem, and found that it is not new to IIS 6. Let
me see if I can explain it adequately...

I have two IIS applications - call them /App1/ and /App2/. /App2/ contains a
utility that is meant to be executed from anywhere on the server:

Server.Execute("/App2/MyUtility.asp") [1]

I was using a typelib declaration in the global.asa in /App2/, but not in
/App1/. The error message read something like this:

'adCmdStoredProc' is undefined
/App2/MyUtility.asp, line xxx

Because of the error message, I focused all of my attention on global.asa in
/App2/, which bore no fruit. I was unable to get *anything* to register. I
then looked outward, to the root global.asa document. Again, I could not get
the script to recognize the typelib declaration.

When troubleshooting this, I set up a parallel web site on port 8000, with
the same root and with identical IIS settings [2]. It appeared to function
properly. But I was only looking at one aspect of functionality. When I
realized I needed to create an application for the /App1/ folder, it broke
again, and I figured out the original problem: Even though MyUtility.asp
runs in its own space and has its own application, the global.asa (and
presumably the application variables) of the CALLING script applies.

It turns out that those typelib constants are not inherited by nested
applications. When I set up the parallel web site, the root global.asa
(which I had modified when troubleshooting the original) applied to the
nested *folder*. When that folder became an *application* it no longer
applied.

So it appears that the red herrings were (a) that this occured on the new
server (IIS 6), but not on the old IIS 5 one [3], (b) the path provided by
the error message, and (c) my mistaken belief that I had mirrored all
settings.

Ugh.



[1] Server.Execute is used instead of #include because (a) the scripts need
not communicate, and more importantly, (b) it can be called from either
VBScript or JScript
[2] Or so I thought
[3] The need for an IIS application was also new, and the developer did not
adequately explain this to me or I did not adequately listen

--
Dave Anderson

Unsolicited commercial email will be read at a cost of $500 per message. Use
of this email address implies consent to these terms. Please do not contact
me directly or ask me to contact you directly for assistance. If your
question is worth asking, it's worth posting.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,995
Messages
2,570,230
Members
46,819
Latest member
masterdaster

Latest Threads

Top