IIS 开启执行 ASP 的应用程序设定

当 IIS (Internet Information Services) 显示 500 伺服器错误时,包含错误的程式码、资料库连接和网站设定,表示发生未知的错误,导致该网站无法正确处理请求。使用 Windows 应用程序在 IIS 预设中很多项目需要以手动开启这些设定。

必须先于控制台 程式集 程式和功能 开启或关闭 Windows 功能来 启用 IIS 功能

于站台 Default Web SiteASP 项目中选择「开启功能」


将错误传送到浏览器

通用的错误页面 500 内部伺服器错误,想要知道错误的原因和解决方法,打开 ASP「传送错误到浏览器」属性设定。只建议在开发或测试环境中使用,因为它可能会暴露程式码或资料库连接字串等敏感资讯。

显示 500 内部伺服器错误的侦错讯息

如果应用在本机电脑环境设计制作时的检测比较好抓出程式的错误问题,如果使用于网站伺服器则建议关闭,必免让入侵者有讯息可以辨识。在正式环境中,应该将「传送错误到浏览器」属性的值设定为 False,并使用自订的错误页面或日志档案来处理错误。



启用上层路径

IIS 中预设上层路径的连结是允许的。启用上层路径会指定是否允许 ASP 页相对于目前目录的路径 (使用 ..\ 符号)。因为包含路径可存取应用程式之根目录外的重要或机密档案,所以如果设定成 true 则此属性会造成潜在的安全性风险。



HasItems

Item NameTypeNameItemItemsContentsCount
ObjectContextIASPObjectContextFalseFalseFalseFalse
ServerIServerFalseFalseFalseFalse
ApplicationIApplicationObjectTrueFalseTrueFalse
Application.ContentsIVariantDictionaryTrueFalseFalseTrue
Application.StaticObjectsIVariantDictionaryTrueFalseFalseTrue
SessionISessionObjectTrueFalseTrueFalse
Session.ContentsIVariantDictionaryTrueFalseFalseTrue
Session.StaticObjectsIVariantDictionaryTrueFalseFalseTrue
RequestIRequestTrueFalseFalseFalse
ResponseIResponseFalseFalseFalseFalse
Server.GetLastErrorIASPErrorFalseFalseFalseFalse
Request.ServerVariablesIRequestDictionaryTrueFalseFalseTrue
Request.ClientCertificateIRequestDictionaryTrueFalseFalseTrue
Request.CookiesIRequestDictionaryTrueFalseFalseTrue
Request.FormIRequestDictionaryTrueFalseFalseTrue
Request.QueryStringIRequestDictionaryTrueFalseFalseTrue
ResponseIResponseFalseFalseFalseFalse
Response.CookiesIRequestDictionaryTrueFalseFalseTrue
Request.Form("ID")IStringListTrueFalseFalseTrue
Request.QueryString("ID")IStringListTrueFalseFalseTrue
Request.Cookies("ID")IReadCookieTrueFalseFalseTrue
Request.ClientCertificate("Subject")IRequestDictionaryTrueFalseFalseTrue
Request.ServerVariables("URL")IStringListTrueFalseFalseTrue
Server.CreateObject("ADODB.Connection")ConnectionFalseFalseFalseFalse
Server.CreateObject("ADODB.Recordset")RecordsetFalseFalseFalseFalse
Server.CreateObject("Scripting.FileSystemObject")FileSystemObjectFalseFalseFalseFalse
Server.CreateObject("Scripting.Dictionary")DictionaryTrueTrueFalseTrue