DebugDiag 1.0

[ 2005/06/01 15:31 | by gOxiA ]

从微软MVP:Bernard Cheah先生那里得知微软发布了一款新工具,用来调试维修IIS,这为IIS管理员带来了惊喜和福音。

**Microsoft releases Debug Diagnostics 1.0 - Release Candidate 1**
 
Microsoft is working diligently on a new tool designed to make the life easier for IIS administrators and developers who are tasked with solving complex problems such as crashes, hangs, or memory leaks.  The tool, called Debug Diagnostics 1.0, is the next generation debugging utility that extends on the functionality of previous tools such as IIS Debug Toolkit 1.1, Debug Matrix, and IIS State.  This tool will be the only fully supported tool for debugging applications that run on IIS upon release and is supported on the IIS 4.0, 5.0, 5.1, and 6.0 platforms. 
 
To join the beta and provide invaluable feedback to the designers,
please do the following -
1. Go to
http://beta.microsoft.com
2. Login in with your passport id.
3. Login using the guest ID "DebugDiag" (it's case sensitive)
4. Click on the "IIS Debug Diagnostic Tool" link.
5. On the left hand side expand survey and select "IIS Debug Diagnostic Tool Nomination Form"
Note: if the customer only wants DebugDiag and doesn't want to sign up for the beta they can do this by selecting "Click here to download IIS Debug Diagnostic Tool" from the File Downloads section.
*You may be prompted to install an activeX control

This tool is also receiving full support via newsgroups which are available by doing the following -
To access WebNews newsgroups:
1. Connect to
http://webnews.microsoft.com
3. For account name, enter "<Your Beta ID>"
4. Enter your Newsgroup Password (if you do not have a Newsgroup password - you can create it on BetaPlace by selecting Modify Your Info from the top navigation bar). Click OK.
5. Select the Program Name or particular newsgroup on the left pane to access.

To provide bug and customer feedback, please open bugs via the beta.microsoft.com using your Microsoft Passport.  It would be incredibly powerful for us to get your feedback and make a true difference in your lives and Microsoft's.

看了Windows Server 2003 SP1的LIST后,发现解决Win2003上运行ASP+Access的BUG补丁没有包含在里面。很郁闷,真的很郁闷!苦苦等待的关键性更新却没有包含,看来微软真的要放弃ASP+Access了,可是这种模式对于小网站还是够用的啊!也许这次将是对ASP程序员们的一次洗牌。

一面是SP1关于IIS更新的List:

823544 MD_ETAG_CHANGENUMBER metabase property is not honored in Internet Information Services version 6.0
823596 IIS Admin Service quits unexpectedly without generating an error message
823700 FIX: Your computer may run slowly when you use Active Directory Service Interfaces scripts in a program to administer IIS on a computer that is running Windows Server 2003, Windows 2000, or Windows XP
824322 ASP file cache is deleted after a network error
824330 FIX: IIS 6.0 does not return AUTH_TYPE for Integrated security
824446 A Common Gateway Interface (CGI) program may not work correctly if a multi-byte character set string is entered in the HTTP Cookie Header field
826007 You may receive a "The IIS Admin scripts only support IIS 6.0" error message when you run the Iisback.vbs script in IIS 6.0
826270 FIX: You cannot suppress the default FTP banner for the FTP service
826410 You cannot disable the logging of successful requests in IIS 6.0
826756 FIX: The Response.BinaryWrite method fails when you use it to send files that are larger than 20 MB
827991 FIX: "HTTP error 401.1 - Unauthorized: Access is denied due to invalid credentials" error message if the Basic authentication Default Domain property is set to a backward slash character (\) in IIS
828086 FIX: You cannot rename a file after you upload the file to an FTP server
828869 The IIS worker process recycles when you use the Server.Execute method
828970 Problems decoding client certificate attributes of type CERT_RDN_UTF8_STRING
829010 FIX: Query strings cannot be appended to a default document for a Web application
830219 FIX: Extending the metabase schema may result in corrupt custom properties
830520 Two authentication prompts when you use an ISAPI filter for authentication
832139 FIX: IIS 6.0 serves stale content if your Web site has both an IP address and host headers set
833734 FIX: You experience various problems when you use the Password Change pages in IIS 6.0
834027 PRB: Disconnected TCP session after chunked transfer response in IIS 6.0
834141 FIX: IP address is revealed in the content-location field in the TCP header in IIS 6.0
836533 You receive a "The security context is invalid" error message when you call or create an out-of-process component
838790 FIX: You receive a 403.2 error message when you use an ISAPI extension .dll file as a default document
839003 FIX: "Automation Error, object is not registered" error message when an ASP page calls COM objects that are running in a COM+ package on IIS 6.0
841460 You may experience performance problems when you use the URL authorization feature of IIS 6.0
867755 Content in Web pages does not appear as expected, or you receive script error messages, after you turn on dynamic HTTP compression for Web sites that use ISAPI filters in Internet Information Services 6.0
867776 FIX: Memory leaks may occur in ASP transactional pages that create COM objects in Internet Information Services (IIS) 6.0
872953 FIX: HTTP headers are set incorrectly when the AddHeader function or the SetHeader function is called in IIS 6.0
883489 You receive an "Access is denied" error message when you connect to a Web site after you modify permissions in the metabase in IIS 6.0
883661 The ILogPlugin::QueryExtraLoggingFields method returns incorrectly formatted data in IIS 6.0
883944 Web requests may not obtain the correct security context on a server that is running Windows Server 2003
884503 FIX: You cannot configure CGI wildcard application mapping in IIS 6.0 in Windows Server 2003
886695 You receive an "Error 1053: The service did not respond to the start or control request in a timely fashion" error message when a service that uses the local system account tries to start on a Windows Server 2003-based computer
886810 The values in the Request.ClientCertificate object are not displayed correctly in IIS 6.0
892499 FIX: Some virtual directory configuration information may be lost and event ID 51260 may be logged on your computer that is running Internet Information Services 6.0
892988 An access violation may occur when you use an ISAPI filter in IIS 6.0

可以发现关于JETDB的KB 838306 没有包含在里面。

马上要对服务器进程重新设置,还要依靠定期的进程回收来解决。

配置 URLScan 工具

[ 2005/01/25 13:14 | by gOxiA ]
修改 URLScan.ini 文件

URLScan 的所有配置都是通过 URLScan.ini 文件执行的,此文件位于 %WINDIR%\System32\Inetsrv\URLscan 文件夹中。要配置 URLScan,请在文本编辑器(如记事本)中打开此文件,进行相应的更改,然后保存此文件。

注意:要使更改生效,必须重新启动 Internet 信息服务 (IIS)。一种快速的实现方法是在命令提示符处运行 IISRESET

URLScan.ini 文件包含以下几节:

[Options]:此节描述常规 URLScan 选项。
[AllowVerbs] 和 [DenyVerbs]:此节定义 URLScan 允许的谓词(又称作 HTTP 方法)。
[DenyHeaders]:此节列出 HTTP 请求中不允许的 HTTP 标头。如果 HTTP 请求中包含此节中列出的任何 HTTP 标头,URLScan 将拒绝该请求。
[AllowExtensions] 和 [DenyExtensions]:此节定义 URLScan 允许的文件扩展名。
[DenyURLSequences]:此节列出 HTTP 请求中不允许的字符串。URLScan 拒绝那些包含此节中出现的字符串的 HTTP 请求。

[Options] 节
[Options] 节中,可以配置许多 URLScan 选项。此节中的每一行都具有以下格式:

OptionName=OptionValue
可用选项及其默认值如下所示:

UseAllowVerbs=1
默认情况下,此选项设置为 1。如果将此选项设置为 1,则 URLScan 仅允许那些使用 [AllowVerbs] 节中列出的谓词的 HTTP 请求。URLScan 禁止任何不使用这些谓词的请求。如果将此选项设置为 0,则 URLScan 忽略 [AllowVerbs] 节,相反仅禁止那些使用 [DenyVerbs] 节中列出的谓词的请求。

UseAllowExtensions=0
默认情况下,此选项设置为 0。如果将此选项设置为 0,则 URLScan 禁止对 [DenyExtensions] 节中列出的文件扩展名的请求,但允许对任何其他文件扩展名的请求。如果将此选项设置为 1,则 URLScan 仅允许对带 [AllowExtensions] 节中列出的扩展名的文件的请求,而禁止对任何其他文件的请求。

NormalizeUrlBeforeScan=1
IIS 收到用 URL 编码的请求。这表示某些字符可能被替换为百分号 (%) 后跟特定的数字。例如,%20 对应于一个空格,因此,对 http://myserver/My%20Dir/My%20File.htm 的请求与对 http://myserver/My Dir/My File.htm 的请求是相同的。标准化就是对 URL 编码请求进行解码的过程。默认情况下,此选项设置为 1。如果将 NormalizeUrlBeforeScan 选项设置为 1,则 URLScan 分析已解码的请求。如果将此选项设置为 0,则 URLScan 分析未解码的请求。将此选项设置为 0 会影响 URLScan 禁止某种攻击的能力。

VerifyNormalization=1
由于百分号 (%) 本身可以是 URL 编码的,所以攻击者可以向服务器提交一个精心制作的、基本上是双重编码的请求。如果发生这种情况,IIS 可能会接受本应视作无效而拒绝的请求。默认情况下,此选项设置为 1。如果将 VerifyNormalization 选项设置为 1,则 URLScan 将对 URL 执行两次标准化。如果第一次标准化后的 URL 与第二次标准化后的 URL 不同,URLScan 将拒绝该请求。这样就可以防止那些依赖双重编码请求的攻击。

AllowHighBitCharacters=0
默认情况下,此选项设置为 0。如果将此选项设置为 0,则 URLScan 拒绝任何包含非 ASCII 字符的请求。这样可以防止某些类型的攻击,但同时可能也会禁止对某些合法文件的请求,如带有非英文名的文件。

AllowDotInPath=0
默认情况下,此选项设置为 0。如果将此选项设置为 0,则 URLScan 拒绝所有包含多个句点 (.) 的请求。这样可以防止通过将安全的文件扩展名放入 URL 的路径信息或查询字符串部分,以达到伪装请求中的危险文件扩展名的企图。例如,如果将此选项设置为 1,则 URLScan 可能允许对 http://servername/BadFile.exe/SafeFile.htm 的请求,因为它认为这是对 HTML 页的请求,但实际上这是一个对可执行 (.exe) 文件的请求,而该文件的名称在 PATH_INFO 区域中显示为 HTML 页的名称。如果将此选项设置为 0,URLScan 可能还会拒绝对包含句点的目录的请求。

RemoveServerHeader=0
默认情况下,Web 服务器返回一个标头,其中指出了 Web 服务器在所有响应中运行的 Web 服务器软件。这会增加服务器遭受攻击的可能性,因为攻击者可以确定服务器正在运行 IIS,于是便攻击已知的 IIS 问题,而不是试图使用为其他 Web 服务器设计的攻击手段来攻击 IIS 服务器。默认情况下,此选项设置为 0。如果将 RemoveServerHeader 选项设置为 1,可以防止您的服务器发送将其标识为 IIS 服务器的标头。如果将 RemoveServerHeader 设置为 0,则仍发送此标头。

AlternateServerName=(默认情况下不指定)
如果将 RemoveServerHeader 设置为 0,可以在 AlternateServerName 选项中指定一个字符串以指定将在服务器标头中传回的内容。如果将 RemoveServerHeader 设置为 1,则此选项将被忽略。

EnableLogging=1
默认情况下,URLScan 在 %WINDIR%\System32\Inetsrv\URLScan 中保留所有被禁止的请求的完整日志。如果不希望保留此日志,可将 EnableLogging 设置为 0。

PerProcessLogging=0
默认情况下,此选项设置为 0。如果将此选项设置为 1,URLScan 将为承载 URLScan.dll 的每个进程创建一个单独的日志。如果将此选项设置为 0,所有进程将记录到同一个文件中。

PerDayLogging=1
默认情况下,此选项设置为 1。如果将该值设置为 1,则 URLScan 每天创建一个新的日志文件。每个日志文件的名称都是 Urlscan.MMDDYY.log,其中 MMDDYY 是日志文件的日期。如果将该值设置为 0,则所有日志记录都保存在同一个文件中,与日期无关。

AllowLateScanning=0
默认情况下,此选项设置为 0。如果将此选项设置为 0,则 URLScan 作为高优先级筛选器运行,这表示它先于服务器上安装的所有其他 Internet 服务器应用程序编程接口 (ISAPI) 筛选器执行。如果将此选项设置为 1,则 URLScan 作为低优先级筛选器运行,以便其他筛选器可以在 URLScan 进行任何分析之前修改 URL。FrontPage Server Extensions (FPSE) 要求将此选项设置为 1。

RejectResponseUrl=(默认情况下不指定)
此选项指定在 URLScan 禁止请求时运行的文件的虚拟路径。这允许您自定义针对被禁止的请求发送给客户机的响应。必须将 RejectResponseUrl 指定为相应文件的虚拟路径,如 /Path/To/RejectResponseHandler.asp。可以指定 URLScan 通常禁止的文件,如 Active Server Pages (ASP) 页。还可以从该页指定以下服务器变量:• HTTP_URLSCAN_STATUS_HEADER:此变量指定请求被禁止的原因。
• HTTP_URLSCAN_ORIGINAL_VERB:此变量指定被禁止的请求中的原始谓词(例如 GET、POST、HEAD 或 DEBUG)。
• HTTP_URLSCAN_ORIGINAL_URL:此变量指定被禁止的请求中的原始 URL。
如果将 RejectResponseUrl 设置为特殊值 /~*,则 URLScan 使用“仅日志记录”模式。这允许 IIS 为所有请求提供服务,但它会在 URLScan 日志中为所有通常被禁止的请求添加相应的项。这在需要测试 URLScan.ini 文件时很有用。
如果没有指定 RejectResponseUrl 的值,则 URLScan 使用默认值 /

UseFastPathReject=0
默认情况下,此选项设置为 0。如果将此选项设置为 1,则 URLScan 忽略 RejectResponseUrl 设置并立即向浏览器返回 404 错误信息。这比处理 RejectResponseUrl 要快,但它允许的日志记录选项没有那么多。如果将此选项设置为 0,则 URLScan 使用 RejectResponseUrl 设置来处理请求。

[AllowVerbs] 节和 [DenyVerbs] 节

[AllowVerbs] 节和 [DenyVerbs] 节定义 URLScan 允许的 HTTP 谓词(又称作方法)。常用的 HTTP 谓词包括 GET、POST、HEAD 和 PUT。其他应用程序(如 FPSE 和 Web 分布式创作和版本控制 (WebDAV))使用更多的谓词。

[AllowVerbs] 节和 [DenyVerbs] 节的语法相同。它们由 HTTP 谓词列表组成,每个谓词占一行。

URLScan 根据 [Options] 节UseAllowVerbs 选项的值来决定使用哪一节。默认情况下,此选项设置为 1。如果将 UseAllowVerbs 设置为 1,则 URLScan 仅允许那些使用 [AllowVerbs] 节中列出的谓词的请求。不使用任何这些谓词的请求将被拒绝。在这种情况下,[DenyVerbs] 节被忽略。

如果将 UseAllowVerbs 设置为 0,则 URLScan 拒绝那些使用 [DenyVerbs] 节中明确列出的谓词的请求。允许任何使用未在此节中出现的谓词的请求。在这种情况下,URLScan 忽略 [AllowVerbs]

[DenyHeaders] 节

当客户机向 Web 服务器请求页面时,它通常会发送一些包含有关此请求的其他信息的 HTTP 标头。常见的 HTTP 标头包括:

Host:
此标头包含 Web 服务器的名称。

Accept:
此标头定义客户机可以处理的文件类型。

User-Agent:
此标头包含请求页面的浏览器的名称。

Authorization:
此标头定义客户机支持的身份验证方法。

客户机可能会向服务器发送其他标头以指定其他信息。

[DenyHeaders] 节中,您定义 URLScan 将拒绝的 HTTP 标头。如果 URLScan 收到的请求中包含此节中列出的任何标头,它将拒绝该请求。此节由 HTTP 标头列表组成,每个标头占一行。标头名后面必须跟一个冒号 (:)(例如 Header-Name:)。

[AllowExtensions] 节和 [DenyExtensions] 节

大多数文件都有一个标识其文件类型的文件扩展名。例如,Word 文档的文件名一般以 .doc 结束,HTML 文件名一般以 .htm 或 .html 结束,纯文本文件名一般以 .txt 结束。[AllowExtensions] 节和 [DenyExtensions] 节允许您定义 URLScan 将禁止的扩展名。例如,您可以配置 URLScan 以拒绝对 .exe 文件的请求,防止 Web 用户在您的系统上执行应用程序。

[AllowExtensions] 节和 [DenyExtensions] 节的语法相同。它们由文件扩展名列表组成,每个扩展名占一行。扩展名以句点 (.) 开头(例如 .ext)。

URLScan 根据 [Options] 节中 UseAllowExtensions 的值来决定使用哪一节。默认情况下,此选项设置为 0。如果将 UseAllowExtensions 设置为 0,则 URLScan 仅拒绝对 [DenyExtensions] 节中列出的文件扩展名的请求。允许此节中未列出的任何文件扩展名。[AllowExtensions] 节被忽略。

如果将 UseAllowExtensions 设置为 1,则 URLScan 拒绝对 [AllowExtensions] 节中未明确列出的任何文件扩展名的请求。仅允许对此节中列出的文件扩展名的请求。[DenyExtensions] 节被忽略。

有关如何配置 URLScan 以允许对没有扩展名的文件的请求,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
312376 HOW TO:Configure URLScan to Allow Requests with a Null Extension in IIS

[DenyUrlSequences] 节

可以配置 URLScan 以禁止那些 URL 中包含某些字符序列的请求。例如,可以禁止那些包含两个连续句点 (..) 的请求,利用目录遍历漏洞的攻击中经常采用这种手段。要指定一个要禁止的字符序列,请将此序列单独放在 [DenyUrlSequences] 节中的一行上。

请注意,添加字符序列可能会对 Microsoft Exchange 的 Outlook Web Access (OWA) 产生负面影响。当您从 OWA 打开一个邮件时,该邮件的主题行包含在服务器所请求的 URL 中。由于 URLScan.ini 文件禁止任何包含百分号 (%) 和连字符 (&) 的请求,因此,当用户尝试打开主题行为“Sales increase by 100%”或“Bob & Sue are coming to town”的邮件时,会收到 404 错误信息。要解决此问题,可以从 [DenyUrlSequences] 节中删除这些序列。请注意,这样做会降低安全性,因为它有可能允许危险的请求到达服务器。

有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
320089 XCCC:The URLScan Utility Does Not Allow You to Open Messages in OWA

注:原文出处:http://support.microsoft.com/default.aspx?scid=kb;zh-cn;326444
Modify the Default URLScan Configuration File

Paste the Urlscan folder in the %Windir%\System32\Inetsrv directory. Double-click the Urlscan folder under Inetsrv, and then open Urlscan.ini in Notepad.

In the Urlscan.ini file, be sure to enable UseAllowExtensions, as follows:
[Option]
UseAllowExtensions=1; if 1, use [AllowExtensions] section, else


Urlscan allows you to specify a null extension in the [AllowExtensions] section. To do this, add a period (.) in the [AllowExtensions] section, as follows:
[AllowExtensions]
.
;
; Extensions listed here are commonly used on a typical IIS server.
;
; Note that these entries are effective if \"UseAllowExtensions=1\"
; is set in the [Option] section above.
;
.asp
.htm
.html
.txt
.jpg
.jpeg
.gif
特征:服务器正常CPU消耗应该在75%以下,而且CPU消耗应该是上下起伏的,出现这种问题的服务器,CPU会突然一直处100%的水平,而且不会下降。查看任务管理器,可以发现是DLLHOST.EXE消耗了所有的CPU空闲时间,管理员在这种情况下,只好重新启动IIS服务,奇怪的是,重新启动IIS服务后一切正常,但可能过了一段时间后,问题又再次出现了。

直接原因:
有一个或多个ACCESS数据库在多次读写过程中损坏,微软的MDAC系统在写入这个损坏的ACCESS文件时,ASP线程处于BLOCK状态,结果其他线程只能等待,IIS被死锁了,全部的CPU时间都消耗在DLLHOST中。

解决办法:
最简单的办法是使用文件医生,自动查找并修复所有有问题的文件,请参考:
http://7i24.com/serverdoctor/filedoctor.htm


另一个办法是:
安装“一流信息监控拦截系统”,使用其中的“首席文件检查官IIS健康检查官”软件,
启用”查找死锁模块”,设置:
;--wblock=yes
;监控的目录,请指定您的主机的文件所在目录:
;--wblockdir=d:\test
监控生成的日志的文件保存位置在安装目录的log目录中,文件名为:logblock.htm

停止IIS,再启动“首席文件检查官IIS健康检查官”,再启动IIS,“首席文件检查官IIS健康检查官”会在logblock.htm中记录下最后写入的ACCESS文件的。

过了一段时间后,当问题出来时,例如CPU会再次一直处100%的水平,可以停止IIS,检查logblock.htm所记录的最后的十个文件,注意,最有问题的往往是计数器类的ACCESS文件,例如:”**COUNT.MDB”,”**COUNT.ASP”,可以先把最后十个文件或有所怀疑的文件删除到回收站中,再启动IIS,看看问题是否再次出现。我们相信,经过仔细的查找后,您肯定可以找到这个让您操心了一段时间的文件的。
找到这个文件后,可以删除它,或下载下来,用ACCESS2000修复它,问题就解决了!!!

ASP.NET的修复

[ 2004/11/24 17:13 | by gOxiA ]
一般IIS运行不了ASP.NET,试一下下面四种方法,99%有效:
1).NET 安装的顺序应该是先装IIS,再装VS.NET,如果次序反了,或者IIS重装了,就
需要使用aspnet_regiis.exe -i来重新安装IIS Mapping(主要用于aspx, asmx等文件
的Extention的匹配)。在C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705目录下,
运行下面的命令:
aspnet_regiis.exe -i

2)重设ASPNET的密码,然后在下面的目录中找到Machine.config文件:
%Systemroot%\Microsoft.NET\Framework\v1.0.3705\CONFIG (Systemroot是你的安装
目录),在标识中添加/修改:
userName和password

3)如果还不行,重装IIS,然后再按照方法1进行操作

4)如果你的机器是域控制器,你可以参考Q315158:ASP.NET Does Not Work with
ASPNET Account on Domain Controller:
http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q315158&

大致操作步骤:
1)在Administrative Tools->Active Directory Users and Computers中建立一个名
为ASPUSER的用户,将该用户添加到用户组中(默认情况下已在User Group中)

2)在Administrative Tools->Local Security Settings->Local Policy->User
Right Assignment中,双击右栏的Log on as a batch job项,在弹出的窗口中点击
Add,选择或输入刚才建立的ASPUSER帐号,确定。(需要重启机器)

3)确保ASPUSER帐号有相应文件、目录的访问权限

4)在下面的目录中找到Machine.config文件:
%Systemroot%\Microsoft.NET\Framework\v1.0.3705\CONFIG (Systemroot是你的安装
目录),在标识中添加/修改:
userName="DomainName\ASPUSER" password="ASPUSERpassword" 其中ASPUSERpassword
是刚刚建立的ASPUSER的密码,DomainName是域名 (重启机器)

INFO:ASP 错误代码

[ 2004/11/09 11:18 | by gOxiA ]
概要
本文包含处理 Active Server Pages (ASP) 页面时可能返回的 ASP 错误代码的列表。根据您所使用的 Internet 信息服务 (IIS) 版本的不同,该列表可能会有所不同。
更多信息
ASP 错误代码 说明
ASP 0100 内存不足
ASP 0101 意外错误
ASP 0102 需要字符串输入
ASP 0103 需要数字输入
ASP 0104 不允许此项操作
ASP 0105 下标越界
ASP 0106 类型不匹配
ASP 0107 堆栈溢出
ASP 0108 创建对象失败
ASP 0109 找不到成员
ASP 0110 未知名称
ASP 0111 未知接口
ASP 0112 缺少参数
ASP 0113 脚本超时
ASP 0114 非自由线程对象
ASP 0115 意外错误
ASP 0116 丢失脚本关闭分隔符
ASP 0117 丢失脚本关闭标记
ASP 0118 丢失对象关闭标记
ASP 0119 丢失 Classid 或 Progid 特性
ASP 0120 无效的 Runat 特性
ASP 0121 对象标记中包含无效作用域
ASP 0122 对象标记中包含无效作用域
ASP 0123 丢失 Id 特性
ASP 0124 丢失 Language 特性
ASP 0125 丢失特性的关闭符
ASP 0126 找不到包含文件
ASP 0127 丢失了 HTML 注释的关闭符
ASP 0128 丢失 File 或 Virtual 特性
ASP 0129 未知的脚本语言
ASP 0130 无效的 File 特性
ASP 0131 不允许的父路径
ASP 0132 编译错误
ASP 0133 无效的 ClassID 特性
ASP 0134 无效的 ProgID 特性
ASP 0135 循环包含
ASP 0136 无效对象实例名称
ASP 0137 无效全局脚本
ASP 0138 嵌套的 Script 块
ASP 0139 嵌套的 Object
ASP 0140 Page 命令无序
ASP 0141 Page 命令重复
ASP 0142 线程令牌错误
ASP 0143 无效的应用程序名
ASP 0144 初始化错误
ASP 0145 新建应用程序失败
ASP 0146 新建会话失败
ASP 0147 500 服务器错误
ASP 0148 服务器太忙
ASP 0149 应用程序正在重新启动
ASP 0150 应用程序目录错误
ASP 0151 更改通知错误
ASP 0152 安全错误
ASP 0153 线程错误
ASP 0154 写入 HTTP 头错误
ASP 0155 写入页内容错误
ASP 0156 标头错误
ASP 0157 缓冲已打开
ASP 0158 丢失 URL
ASP 0159 缓冲已关闭
ASP 0160 日志记录失败
ASP 0161 数据类型错误
ASP 0162 不能修改 Cookie
ASP 0163 逗号的使用不正确
ASP 0164 无效的超时值
ASP 0165 SessionID 错误
ASP 0166 未初始化的对象
ASP 0167 会话初始化错误
ASP 0168 不允许的对象使用方式
ASP 0169 丢失对象信息
ASP 0170 删除会话错误
ASP 0171 缺少路径
ASP 0172 无效路径
ASP 0173 无效 Path 字符
ASP 0174 无效 Path 字符
ASP 0175 不允许的 Path 字符
ASP 0176 找不到路径
ASP 0177 Server.CreateObject 失败
ASP 0178 Server.CreateObject 访问错误
ASP 0179 应用程序初始化错误
ASP 0180 不允许的对象使用方式
ASP 0181 无效线程模型
ASP 0182 丢失对象信息
ASP 0183 空 Cookie 关键字
ASP 0184 丢失 Cookie 名称
ASP 0185 丢失默认属性
ASP 0186 解析证书时出错
ASP 0187 对象添加冲突
ASP 0188 不允许的对象使用方式
ASP 0189 不允许的对象使用方式
ASP 0190 意外错误
ASP 0191 意外错误
ASP 0192 意外错误
ASP 0193 OnStartPage 失败
ASP 0194 OnEndPage 失败
ASP 0195 无效服务器方法调用
ASP 0196 不能启动进程外组件
ASP 0197 不允许的对象使用方式
ASP 0198 服务器正在关闭
ASP 0199 不允许的对象使用方式
ASP 0200 'Expires' 特性越界
ASP 0201 无效的默认脚本语言
ASP 0202 丢失代码页
ASP 0203 无效代码页
ASP 0204 CodePage 值无效
ASP 0205 更改通知
ASP 0206 不能调用 BinaryRead
ASP 0207 不能使用 Request.Form
ASP 0208 不能使用一般 Request 集合
ASP 0209 TRANSACTION 属性值非法
ASP 0210 方法未实现
ASP 0211 对象越界
ASP 0212 不能清除缓冲区
ASP 0214 无效路径参数
ASP 0215 ENABLESESSIONSTATE 属性值非法
ASP 0216 MSDTC 服务不在运行
ASP 0217 对象标记中包含无效作用域
ASP 0218 丢失 LCID
ASP 0219 无效的 LCID
ASP 0220 不允许 GLOBAL.ASA 请求
ASP 0221 无效的 @ 命令指令
ASP 0222 无效 TypeLib 规格
ASP 0223 未找到 TypeLib
ASP 0224 无法加载 TypeLib
ASP 0225 无法包装 TypeLibs
ASP 0226 不能修改 StaticObjects
ASP 0227 Server.Execute 失败
ASP 0228 Server.Execute 错误
ASP 0229 Server.Transfer 失败
ASP 0230 Server.Transfer 错误
ASP 0231 Server.Execute 错误
ASP 0232 无效的 Cookie 规格
ASP 0233 无法加载 cookie 脚本源
ASP 0234 无效的包含指令
ASP 0235 Server.Transfer 错误
ASP 0236 无效的 Cookie 规格
ASP 0237 无效的 Cookie 规格
ASP 0238 丢失特性值
ASP 0239 无法处理文件
ASP 0240 脚本引擎异常
ASP 0241 CreateObject 异常
ASP 0242 查询 OnStartPage 接口异常
ASP 0243 Global.asa 中包含无效的 METADATA 标记
ASP 0244 无法启用会话状态
ASP 0245 代码页值的混合使用
ASP 0246 并发用户太多。请稍后重试。
ASP 0247 无效的 BinaryRead 参数。
ASP 0248 脚本未经事务处理。此 ASP 文件必须经过事务处理以使用 ObjectContext 对象。
ASP 0249 不能在 Request 上使用 IStream。使用 Request.Form 集合或 Request.BinaryRead 后不能在 Request 对象上使用 IStream。
ASP 0250 无效默认代码页。指定的应用程序默认代码页无效。
ASP 0251 超过响应缓冲区限制。此 ASP 页的执行造成响应缓冲区超过其配置限制。

IIS帐号同步

[ 2004/11/06 09:57 | by gOxiA ]
一.错误表现
这个错误发生时总会有三方面的表现:一是IE中的最直接的表现,
也是最让人看不懂的表现;二是安全日志中的表现,IWAM_Machine账号登录失败;三是系统日志中的表现,IIS Out-Of-Process Pooled Applications应用程序因启动账号的错误而不能够启动.从而造成ASP页面浏览错误.
(一)IE中的表现
当浏览以前能够正常运行的asp页面时会出现如下的错误:
(1)
网页无法显示
您要访问的网页存在问题,因此无法显示。
---------------------------------------------
请尝试下列操作:
打开 http://127.0.0.1 主页,寻找指向所需信息的链接。
单击刷新按钮,或者以后重试。
HTTP 500 - 内部服务器错误
Internet 信息服务
--------------------------------------------------------------------------------
技术信息(支持个人)
详细信息:
Microsoft 支持
[注意,这儿只是500错误,不是500.xx等错误的,那些错误主要是asp编程问题,与iis没有太大的关系,只有500错误是由iis自身造成的]
(2)
Server Application Error
The server has encountered an error while loading an application during the processing of your request. Please refer to the event log for more detail information. Please contact the server administrator for assistance.
(二)安全日志记录(2条)
事件类型: 失败审核
事件来源: Security
事件种类: 登录/注销
事件 ID: 529
日期: 2001-9-9
事件: 11:17:07
用户: NT AUTHORITY\SYSTEM
计算机: MYSERVER
描述:
登录失败:
原因: 用户名未知或密码错误
用户名: IWAM_MYSERVER
域: MYDOM
登录类型: 4
登录过程: Advapi
身份验证程序包: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
工作站名: MYSERVER

事件类型: 失败审核
事件来源: Security
事件种类: 帐户登录
事件 ID: 681
日期: 2001-9-9
事件: 11:17:07
用户: NT AUTHORITY\SYSTEM
计算机: MYSERVER
描述:
登录到帐户: IWAM_MYSERVER
登录的用户: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
从工作站: MYSERVER
未成功。错误代码是: 3221225578
注:IWAM_MYSERVER,启动进程之外的应用程序的 Internet 信息服务的内置帐号,安装IIS时自动建立,其密码由IIS控制.
(三)系统日志中的记录(2条)
事件类型: 错误
事件来源: DCOM
事件种类: 无
事件 ID: 10004
日期: 2001-9-9
事件: 11:20:26
用户: N/A
计算机: MYSERVER
描述:
DCOM 遇到错误“无法更新密码。提供给新密码的值包含密码中不允许的值。 ”并且无法登录到 .\IWAM_MYSERVER 上以运行服务器:
{3D14228D-FBE1-11D0-995D-00C04FD919C1}
事件类型: 警告
事件来源: W3SVC
事件种类: 无
事件 ID: 36
日期: 2001-9-9
事件: 11:20:26
用户: N/A
计算机: MYSERVER
描述:
服务器未能转入应用程序 '/LM/W3SVC/4/Root'。错误是 'RunAs 的格式必须是<域名>\<用户名>或只是<用户名>
'。
若要获取关于此消息的更多的信息,请访问 Microsoft 联机支持站点: http://www.microsoft.com/contentredirect.asp 。
注:3D14228D-FBE1-11D0-995D-00C04FD919C1}实际是IIS Out-Of-Process Pooled Applications 的KEY.也就是代表IIS Out-Of-Process Pooled Applications.
出现IIS 500内部错误的原因有多个,但最主要的原因是IWAM_MACHINE账号在Active Directory(或SAM),IIS的metabase数据库与COM+组件中的密码不匹配不同步最成的.因此解决问题的关键在于使这三方的密码同步起来.
要使这三方的密码同步,有几种办法,下面只介绍最好用的一种,使用IIS自带的脚本进行密码同步(看来微软早就知道这方面的问题了,因此专门做了一个密码同步的脚本.:)):
操作如下:
1.在本地账号管理器或AD用户与计算机中更改IWAM_MACHINE账号的密码.假设我们改为"12345678".[本来这个账号是计算机控制的,非常复杂].
2.使用新的密码重设IIS Metabase数据库.我们需要使用IIS自带的管理脚本adsutil.运行如下的命令:
c:\Inetpub\AdminScripts> adsutil SET w3svc/WAMUserPass 12345678
系统会显示:
WAMUserPass: (String) "12345678"
提示密码更新成功.
通常情况下IIS会自动与系统账号等信息同步,但我发现我的机器上ISUR_MACHINE是同步的,但IWAM_MACHINE总是不同步,因此只好自行修改了.
3.同步COM+账号密码
同样我们要用到IIS的管理脚本synciwam.vbs,这个脚本通常会存在于c:\inetpub\adminscripts下,上一个管理脚本也在这儿放着.
命令如下:
cscript c:\inetpub\adminscripts\synciwam.vbs -v
-v参数是打开详细模式,让我们看到更新的过程,通常会如下显示:
Microsoft (R) Windows Script Host Version 5.6
版权所有(C) Microsoft Corporation 1996-2000。保留所有权利。
WamUserNameIWAM_MYSERVER
WamUserPass12345678
IIS Applications Defined:
Name, AppIsolated, Package ID
w3svc, 0, {3D14228C-FBE1-11d0-995D-00C04FD919C1}
Root, 2,
IISHelp, 2,
IISAdmin, 2,
IISSamples, 2,
MSADC, 2,
ROOT, 2,
IISAdmin, 2,
IISHelp, 2,
Root, 2,
Root, 2,
Out of process applications defined:
Count: 1
{3D14228D-FBE1-11d0-995D-00C04FD919C1}
Updating Applications:
Name: IIS Out-Of-Process Pooled Applications Key: {3D14228D-FBE1-11D0-995D-00C04
FD919C1}
密码同步成功.如果不成功先看一下这个脚本取的IIS的密码正确不正确,如果不正确请重复第二步同步IIS密码.
问题解闷,再打开IIS看看,ASP程序应该能够正常浏览了.

IIS日志删除脚本

[ 2004/10/21 09:07 | by gOxiA ]
How can I delete all files from my IIS log file directory that are over 90 days old?

这个脚本可以从日志目录中删除90天的记录。

Option Explicit
Const GENERAL_FAILURE = 2
Const KillFile=0 ' Set this to 0 to not delete the files, set to 1 to delete the files

Dim ArgObj, Servername, WebSiteID, WebSite, WebSitepath, totalDeleted, MaxAgeOfFileToKeep

Function DeleteOldLogFiles(WebSite,  MaxAgeOfFile)
Dim File, ServerObj, FSO, FolderObj, FileObj, LogFileDir, Deleted, Status, FailedToDelete
Deleted = 0
FailedToDelete= 0
on error resume next
' Attempt to get the web site object from the metabase
Err.clear
Set ServerObj = GetObject(WebSite)
If (Err.Number <> 0) Then
  WScript.Echo \"Error: \" & Err.Description & \" (\" & Err.Number & \")\"
  Exit Function
end if
LogFileDir = ServerObj.LogFileDirectory
Set ServerObj = Nothing
WScript.Echo \"Log file dir for: \" &WebSite & \" = \" & LogFileDir
WScript.Echo \"Delete files over \"& MaxAgeOfFile & \" days old.\"
WScript.Echo \"\"
Set FSO = CreateObject(\"Scripting.FileSystemObject\")
set Folderobj = FSO.GetFolder(LogFileDir)
for each File in Folderobj.files
 if (Date - File.DateCreated > cint(MaxAgeOfFile)) then
        Status = \"Deleting File: \" & File.name & \", Age=\" & formatNumber(Date-File.DateCreated, 0) & \" days, Status=\"
        Err.Clear
        if (KillFile = 1) then
            FSO.DeleteFile(LogFileDir & \"\" & File.Name)
            If (Err.Number <> 0) Then
                   Status = Status & \"Failed : \"& Err.Description & \" (\" & Err.Number & \")\"
                   FailedToDelete = FailedToDelete +1
           else      
                Status = Status & \"Deleted\"
               Deleted = Deleted + 1
            end if
      else
           Status = Status & \"Skipped\"
       end if
       WScript.Echo Status  
 end if
next
DeleteoldLogfiles = Deleted
WScript.Echo \"\"
if (FailedToDelete > 0) then
  WScript.Echo \"There were \" & FailedToDelete  & \" files that could not be deleted.\"
end if
WScript.Echo \"There were \" & Deleted & \" files deleted.\"
end function
Sub DisplayHelpMessage()
   WScript.Echo
   WScript.Echo \"Usage:\"
   WScript.Echo \"      DeleteOldWebSiteLogfiles.VBS MaxDays WebSiteNumber \"
   WScript.Echo
   WScript.Echo \"MaxDays = maximum age in days of files to keep.\"
   WScript.Echo \"WebSiteNumber is the number of the web site, you have two methods to determine this:\"
   WScript.Echo
   WScript.Echo \"#1 = Run FINDWEB.VBS\"
   WScript.Echo \"#2 = Right click the web site, select properties, on the web site tab\"
   WScript.Echo \"     under logging click the Properties button, part of the log file\"
   WScript.Echo \"     name will contain the web site #\"
   WScript.Echo
   WScript.Echo \"     example log filename: W3SVC1\exyymmdd.log  - the web site is 1\"
   WScript.Echo \"                           W3SVC45\exyymmdd.log - the web site is 45\"
   WScript.Echo
   WScript.Echo \"Please visit and support : http://www.iisfaq.com\"
end sub
' Get the Arguments object
Set ArgObj = WScript.Arguments
' Test to make sure there is at least one command line arg - the command
If ArgObj.Count < 2 Then
       DisplayHelpMessage
       WScript.Quit (GENERAL_FAILURE)
End If
Servername = \"LocalHost\"
MaxAgeOfFileToKeep = trim(ArgObj(0))
WebSiteID    = trim(ArgObj(1))
WebSite        = \"W3SVC/\" & WebSiteID
WebSitepath = \"IIS://\" & Servername &\"/\" & WebSite
TotalDeleted = DeleteOldLogFiles(WebSitePath,  MaxAgeOfFileToKeep)

关于Win2003下ASP无故停止

[ 2004/10/13 17:33 | by gOxiA ]
微软已经承认,在win2003下运行access数据库的站点,会遇到ASP突然停止工作的故障
主要是因为session造成的,相关文档:
http://support.microsoft.com/?id=307598

解决方法,安装相应更新文件,参考网址:http://www.aspfaq.com/show.asp?id=2356
1、安装MDAC2.8,http://www.microsoft.com/downloads/details.aspx?FamilyID=6c050fe3-c795-4b7d-b037-185d0506396c&DisplayLang=en

2、安装MDAC关键更新Microsoft Data Access Components (MDAC) Security Patch MS04-003 (32-bit),http://www.microsoft.com/downloads/details.aspx?FamilyId=39472EE8-C14A-47B4-BFCC-87988E062D91&displaylang=en

3、安装Jet 4.0 Service Pack 8 (SP8) for Windows Server 2003 (KB829558),http://www.microsoft.com/downloads/details.aspx?familyid=97bc8126-5c60-44bc-a2ce-1e40c7fe2b34&displaylang=en
分页: 4/5 第一页 上页 1 2 3 4 5 下页 最后页 [ 显示模式: 摘要 | 列表 ]