Discussion:
AspErrorsToNTLog no longer works in IIS6
(too old to reply)
Brian Lalonde
2005-02-10 19:42:44 UTC
Permalink
What gives? Why does the AspErrorsToNTLog metabase property no longer
work in IIS6?

How am I supposed to debug applications without adding my own logging
layer, with all the added points of failure (including permissions) that
entails?

I can't even use the WScript.Shell LogEvent method as a workaround, and
I certainly don't want to start giving Classic ASP apps write access to
the filesystem unneccesarily.
David Wang [Msft]
2005-02-11 08:44:08 UTC
Permalink
By design. IIS6 does not have permissions to write to the event log by
default.

The reasons? Allowing remote, potentially anonymous requests the ability to
DoS the server is not acceptable by default. You will have to change
security settings to allow this behavior.
http://support.microsoft.com/?id=832981


ASP has had integrated debugging for quite some time now, supporting remote
and local step-through using a GUI debugger -- so I'm not certain what you
are missing.
--
//David
IIS
http://blogs.msdn.com/David.Wang
This posting is provided "AS IS" with no warranties, and confers no rights.
//
"Brian Lalonde" <***@stcu.org> wrote in message news:eQt$***@TK2MSFTNGP09.phx.gbl...
What gives? Why does the AspErrorsToNTLog metabase property no longer
work in IIS6?

How am I supposed to debug applications without adding my own logging
layer, with all the added points of failure (including permissions) that
entails?

I can't even use the WScript.Shell LogEvent method as a workaround, and
I certainly don't want to start giving Classic ASP apps write access to
the filesystem unneccesarily.
Brian Lalonde
2005-02-14 16:31:15 UTC
Permalink
Shouldn't this be the developer's decision?
Is that the right link? I don't see how allowing users to log in when
the security log is full has any relevance.

As AspErrorsToNTLog is already off by default, I don't follow the logic
for further disabling it. Is event log performance significantly worse
than a database insert or appending to the IIS log?

I'm not sure of the security implications of client-side debugging, but
I'd be surprised if they were any less dangerous than a theoretical DoS
attack that takes advantage of event log performance or concurrency issues.

However, determining errors during a formal debugging session is not
what I am interested in.

Here's what I'm missing: when I get a support call from a user, they
will not have the detailed error (either we hide it, or they don't
record it), so I used to be able to audit the error because all errors
were stored persistantly. Now, I have no auditable error log.

This is a big problem in that it takes significant resources to try to
reproduce a problem, particularly errors idiosyncratic to a peculiar
platform, e.g. a version of Mac IE that sends a Content-Type header of
application/octet-stream for an uploaded image file.
Post by David Wang [Msft]
By design. IIS6 does not have permissions to write to the event log by
default.
The reasons? Allowing remote, potentially anonymous requests the ability to
DoS the server is not acceptable by default. You will have to change
security settings to allow this behavior.
http://support.microsoft.com/?id=832981
ASP has had integrated debugging for quite some time now, supporting remote
and local step-through using a GUI debugger -- so I'm not certain what you
are missing.
Ken Schaefer
2005-02-15 05:34:42 UTC
Permalink
Post by Brian Lalonde
Shouldn't this be the developer's decision?
Is that the right link? I don't see how allowing users to log in when the
security log is full has any relevance.
Um - you mean that you think it's OK if a developer decides they want to
fill the event log, and that stops every other user from being able to
login?
Post by Brian Lalonde
Here's what I'm missing: when I get a support call from a user, they will
not have the detailed error (either we hide it, or they don't record it),
so I used to be able to audit the error because all errors were stored
persistantly. Now, I have no auditable error log.
If this is an ASP or ASP.NET app there are easy ways to log all ASP or
ASP.NET errors (or errors bubbled up to ASP or ASP.NET, eg from ADO/ADO.NET)
to a database, or send an email or log to event log)

Cheers
Ken
Post by Brian Lalonde
This is a big problem in that it takes significant resources to try to
reproduce a problem, particularly errors idiosyncratic to a peculiar
platform, e.g. a version of Mac IE that sends a Content-Type header of
application/octet-stream for an uploaded image file.
Post by David Wang [Msft]
By design. IIS6 does not have permissions to write to the event log by
default.
The reasons? Allowing remote, potentially anonymous requests the ability to
DoS the server is not acceptable by default. You will have to change
security settings to allow this behavior.
http://support.microsoft.com/?id=832981
ASP has had integrated debugging for quite some time now, supporting remote
and local step-through using a GUI debugger -- so I'm not certain what you
are missing.
Brian Lalonde
2005-02-23 19:55:32 UTC
Permalink
Post by Ken Schaefer
Post by Brian Lalonde
Shouldn't this be the developer's decision?
Is that the right link? I don't see how allowing users to log in when the
security log is full has any relevance.
Um - you mean that you think it's OK if a developer decides they want to
fill the event log, and that stops every other user from being able to
login?
I guess if you write buggy code that generates a lot of (consistent and
predictable) errors exploitable by malicious users, and use your web
server as a terminal services server for the whole office, that would be
a pretty big issue.
There should be a way to disable the child-proofing for everyone else,
though.
Post by Ken Schaefer
Post by Brian Lalonde
Here's what I'm missing: when I get a support call from a user, they will
not have the detailed error (either we hide it, or they don't record it),
so I used to be able to audit the error because all errors were stored
persistantly. Now, I have no auditable error log.
If this is an ASP or ASP.NET app there are easy ways to log all ASP or
ASP.NET errors (or errors bubbled up to ASP or ASP.NET, eg from ADO/ADO.NET)
to a database, or send an email or log to event log)
Great! Care to share? (Particularly the event log approach!)

Does it require a great deal of extra code that increases the likelihood
of errors and cost of maintainence, or is there some new configuration
that I'm missing?

I used to be able to check a box, and read the event log after an error
had occurred to see the text of the error message (including the line
number). Alternatives should be comparably simple.
David Wang [Msft]
2005-02-15 19:40:54 UTC
Permalink
Post by Brian Lalonde
Shouldn't this be the developer's decision?
Yes, it is the developer's decision. We are simply making it disabled by
default and forcing developers to actively enable it.
Post by Brian Lalonde
Is that the right link? I don't see how allowing users to log in
when the security log is full has any relevance.
The security implication is that anonymous remote requests can be used to
fill the event log and cause the server to stop responding (for very legal
reasons -- failure to log to the event log results in lack of repudiation
which in itself is a security vulnerability/violation).
Post by Brian Lalonde
As AspErrorsToNTLog is already off by default, I don't follow the
logic for further disabling it. Is event log performance significantly
worse than a database insert or appending to the IIS log?
I would say that the prior design (allowing toggle of ASP Errors to event
log instead of the normal log file) was flawed from a security perspective,
so IIS6 is merely fixing it the right way (see my suggestion below).
Furthermore, the Event Log locked itself down from anonymous/unprivileged
event logging on WS03, so that is another change.
Post by Brian Lalonde
Here's what I'm missing: when I get a support call from a user,
they will not have the detailed error (either we hide it, or they
don't record it), so I used to be able to audit the error because
all errors were stored persistantly. Now, I have no auditable
error log.
How about using the web log file? You do log requests to your server(s),
correct? All ASP errors are quite identifiable from the web log file, and
it includes the offending URL as well as ASP error number (the same info you
get with AspErrorsToNTLog). I'm sure with normal web logging plus Log
Parser to query/search your log files, you can find your error information
just as fast and and with less security implications. I realize that this
method is "different" than what you have gotten used to, but it should be
comparable so please give it a try.

Log Parser 2.2
http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07&displaylang=en
--
//David
IIS
http://blogs.msdn.com/David.Wang
This posting is provided "AS IS" with no warranties, and confers no rights.
//
"Brian Lalonde" <***@stcu.org> wrote in message news:uWE$***@TK2MSFTNGP12.phx.gbl...
Shouldn't this be the developer's decision?
Is that the right link? I don't see how allowing users to log in when
the security log is full has any relevance.

As AspErrorsToNTLog is already off by default, I don't follow the logic
for further disabling it. Is event log performance significantly worse
than a database insert or appending to the IIS log?

I'm not sure of the security implications of client-side debugging, but
I'd be surprised if they were any less dangerous than a theoretical DoS
attack that takes advantage of event log performance or concurrency issues.

However, determining errors during a formal debugging session is not
what I am interested in.

Here's what I'm missing: when I get a support call from a user, they
will not have the detailed error (either we hide it, or they don't
record it), so I used to be able to audit the error because all errors
were stored persistantly. Now, I have no auditable error log.

This is a big problem in that it takes significant resources to try to
reproduce a problem, particularly errors idiosyncratic to a peculiar
platform, e.g. a version of Mac IE that sends a Content-Type header of
application/octet-stream for an uploaded image file.
Post by Brian Lalonde
By design. IIS6 does not have permissions to write to the event log by
default.
The reasons? Allowing remote, potentially anonymous requests the ability to
DoS the server is not acceptable by default. You will have to change
security settings to allow this behavior.
http://support.microsoft.com/?id=832981
ASP has had integrated debugging for quite some time now, supporting remote
and local step-through using a GUI debugger -- so I'm not certain what you
are missing.
Brian Lalonde
2005-02-23 20:29:58 UTC
Permalink
Post by David Wang [Msft]
Post by Brian Lalonde
Shouldn't this be the developer's decision?
Yes, it is the developer's decision. We are simply making it disabled by
default and forcing developers to actively enable it.
OK, how is that done?
Post by David Wang [Msft]
Post by Brian Lalonde
Is that the right link? I don't see how allowing users to log in
when the security log is full has any relevance.
The security implication is that anonymous remote requests can be used to
fill the event log and cause the server to stop responding (for very legal
reasons -- failure to log to the event log results in lack of repudiation
which in itself is a security vulnerability/violation).
First, it seems kind of dumb to lock a server just because the
*Application Log* is full. Security or System logs I can see, but is the
App Log really important enough to bring down the server?

Second, this assumes a consistant, predictable error that can be
repeatedly exploited by malicious users. There are circumstances where
this is not an issue: intranet web servers or event logs set to
overwrite when full, for example.

Third, what about web app repudiation?
Post by David Wang [Msft]
Post by Brian Lalonde
As AspErrorsToNTLog is already off by default, I don't follow the
logic for further disabling it. Is event log performance significantly
worse than a database insert or appending to the IIS log?
I would say that the prior design (allowing toggle of ASP Errors to event
log instead of the normal log file) was flawed from a security perspective,
so IIS6 is merely fixing it the right way (see my suggestion below).
Furthermore, the Event Log locked itself down from anonymous/unprivileged
event logging on WS03, so that is another change.
I honestly don't see how logging events to the event log is a flawed
concept. If the web app log needs to be isolated, then create an
additional event log: "Web Application Log". If removing persistant
auditability of security, system, and application events is a serious
enough problem to lock a server, why are web apps any exception?
Post by David Wang [Msft]
Post by Brian Lalonde
Here's what I'm missing: when I get a support call from a user,
they will not have the detailed error (either we hide it, or they
don't record it), so I used to be able to audit the error because
all errors were stored persistantly. Now, I have no auditable
error log.
How about using the web log file? You do log requests to your server(s),
correct? All ASP errors are quite identifiable from the web log file, and
it includes the offending URL as well as ASP error number (the same info you
get with AspErrorsToNTLog). I'm sure with normal web logging plus Log
Parser to query/search your log files, you can find your error information
just as fast and and with less security implications. I realize that this
method is "different" than what you have gotten used to, but it should be
comparable so please give it a try.
Log Parser 2.2
http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07&displaylang=en
Are you suggesting the IIS log? I'm not looking for mere HTTP status
codes, here. I want to see the text of the VBScript error message,
including the line number! Here is an example of what I get from
pre-IIS6 systems with AspErrorsToNTLog:

Warning: File /webforms/global.asa Line 135 [Microsoft][ODBC SQL Server
Driver][DBNETLIB]SQL Server does not exist or access denied.

How can the IIS log give me that info? As far as I can tell, I wouldn't
even know what *file* the error is from!

That's "different" all right (as in "not good enough").
Brian Lalonde
2005-03-10 15:34:39 UTC
Permalink
Am I to assume IIS6 no longer offers a way to audit VBScript errors?
Post by David Wang [Msft]
Post by Brian Lalonde
Shouldn't this be the developer's decision?
Yes, it is the developer's decision. We are simply making it disabled by
default and forcing developers to actively enable it.
Post by Brian Lalonde
Is that the right link? I don't see how allowing users to log in
when the security log is full has any relevance.
The security implication is that anonymous remote requests can be used to
fill the event log and cause the server to stop responding (for very legal
reasons -- failure to log to the event log results in lack of repudiation
which in itself is a security vulnerability/violation).
Post by Brian Lalonde
As AspErrorsToNTLog is already off by default, I don't follow the
logic for further disabling it. Is event log performance significantly
worse than a database insert or appending to the IIS log?
I would say that the prior design (allowing toggle of ASP Errors to event
log instead of the normal log file) was flawed from a security perspective,
so IIS6 is merely fixing it the right way (see my suggestion below).
Furthermore, the Event Log locked itself down from anonymous/unprivileged
event logging on WS03, so that is another change.
Post by Brian Lalonde
Here's what I'm missing: when I get a support call from a user,
they will not have the detailed error (either we hide it, or they
don't record it), so I used to be able to audit the error because
all errors were stored persistantly. Now, I have no auditable
error log.
How about using the web log file? You do log requests to your server(s),
correct? All ASP errors are quite identifiable from the web log file, and
it includes the offending URL as well as ASP error number (the same info you
get with AspErrorsToNTLog). I'm sure with normal web logging plus Log
Parser to query/search your log files, you can find your error information
just as fast and and with less security implications. I realize that this
method is "different" than what you have gotten used to, but it should be
comparable so please give it a try.
Log Parser 2.2
http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07&displaylang=en
Loading...