解决方法:An error occurred on the server when processing the URL. Please contact the system administrato

本文介绍了解决在Windows 7或Server 2008上的IIS7.5环境中调试ASP程序时遇到的错误提示问题的方法。提供了两种方式来开启错误详细信息显示,便于开发者快速定位并解决问题。

在WINDOWS7或SERVER2008上安装了IIS7.5,调试ASP程序时出现以下错误:


    An error occurred on the server when processing the URL. Please contact the system administrator


    解决方法如下:


    设置方法一:


    以管理员身份运行CMD,将目录定位到%windir%\system32\inetsrv\,然后执行appcmd set config -section:asp -scriptErrorSentToBrowser:true。

    %windir%\system32\inetsrv\appcmd set config -section:asp -scriptErrorSentToBrowser:true


    设置方法二:


    打开IIS7的asp设置,展开“调试属性”选项,“将错误发送到浏览器”这项默认的是False,改为True,然后点右侧的应用!如图所示:



    通过以上设置后,再从浏览时打开出错ASP页面时就能看到页面出错的详细信息,方使调试。如果是公开的Web服务器建议不要打开此选项,以防出错信息被他人利用。


### 回答问题 尽管我们已经对 `login.asp` 进行了多次调整,但错误仍然存在。以下是进一步的分析和解决方案: #### 1. 深入分析可能的原因 - **IIS 配置问题**:IIS 的权限配置可能导致 ASP 文件无法正常运行。 - **ASP 脚本引擎未启用**:如果服务器未正确安装或配置 ASP 脚本引擎,可能会导致脚本无法执行。 - **数据库文件权限不足**:即使路径正确,如果 IIS 用户没有足够的权限访问数据库文件,也会导致错误。 - **Session 或 Cookie 配置问题**:如果 Session 或 Cookie 的配置有问题,可能会导致运行时错误。 #### 2. 修改后的 `login.asp` 以下是进一步优化后的代码,重点解决上述潜在问题: ```asp <!--#include file="ZJFZ_head.asp"--> <% ' 设置页面编码为 UTF-8 Response.CodePage = 65001 ' UTF-8 编码 Response.CharSet = "UTF-8" ' 接收表单参数 Dim ZJFZ_User, ZJFZ_MiMa, keys ZJFZ_User = Server.HTMLEncode(Request("ZJFZ_User")) ' 防止 XSS 攻击 ZJFZ_MiMa = Server.HTMLEncode(Request("ZJFZ_MiMa")) keys = Request("keys") ' 数据库连接字符串 Dim connStr connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/path_to_your_database/your_database.mdb") & ";Persist Security Info=False;" If Len("your_password") > 0 Then connStr = connStr & "Jet OLEDB:Database Password=your_password;" End If connStr = connStr & "CharacterSet=UTF-8;" ' 指定字符集为 UTF-8 ' 打开数据库连接 Dim Louconn On Error Resume Next ' 捕获错误 Set Louconn = Server.CreateObject("ADODB.Connection") Louconn.Open connStr If Err.Number <> 0 Then Response.Write "<p>数据库连接失败,请检查数据库配置。</p>" Response.Write "<p>错误信息:" & Err.Description & "</p>" Err.Clear Exit Sub End If If ZJFZ_User <> "" And ZJFZ_MiMa <> "" Then ' 使用参数化查询防止 SQL 注入 Dim sql, cmd, Lours sql = "SELECT * FROM ZJFZ_USER_DATA WHERE ZJFZ_User = ?" Set cmd = Server.CreateObject("ADODB.Command") cmd.ActiveConnection = Louconn cmd.CommandText = sql cmd.Parameters.Append cmd.CreateParameter("ZJFZ_User", 200, 1, 255, ZJFZ_User) ' 参数化查询 Set Lours = cmd.Execute If Not (Lours.BOF And Lours.EOF) Then If Lours("ZJFZ_DengLuQX") >= 1 Then ' 判断是否有该权限 If Lours("ZJFZ_MiMa") = ZJFZ_MiMa Then Session("ZJFZ_MiMa") = Lours("ZJFZ_MiMa") Session("ZJFZ_User") = Lours("ZJFZ_User") Session("ZJFZ_XingMing") = Lours("ZJFZ_XingMing") Session("ZJFZ_Group") = Lours("ZJFZ_Group") Session("ZJFZ_KeShiBM") = Lours("ZJFZ_KeShiBM") Session("ZJFZ_KeShiName") = Lours("ZJFZ_KeShiName") Session("ZJFZ_DengLuQX") = Lours("ZJFZ_DengLuQX") ' 获取用户 IP 地址 Function GetIp() Dim clientIp : clientIp = Request.ServerVariables("HTTP_X_FORWARDED_FOR") If clientIp = "" Then clientIp = Request.ServerVariables("REMOTE_ADDR") End If GetIp = clientIp End Function Dim ZJFZ_log_ip : ZJFZ_log_ip = GetIp() Dim ZJFZ_log_User : ZJFZ_log_User = Lours("ZJFZ_User") Dim ZJFZ_log_date : ZJFZ_log_date = Now() ' 插入登录日志 Dim savelog_sql : savelog_sql = "INSERT INTO ZJFZ_Log_data(log_user, Log_date, Log_ip) VALUES(?, ?, ?)" Set cmd = Server.CreateObject("ADODB.Command") cmd.ActiveConnection = Louconn cmd.CommandText = savelog_sql cmd.Parameters.Append cmd.CreateParameter("log_user", 200, 1, 255, ZJFZ_log_User) cmd.Parameters.Append cmd.CreateParameter("Log_date", 135, 1, , ZJFZ_log_date) cmd.Parameters.Append cmd.CreateParameter("Log_ip", 200, 1, 255, ZJFZ_log_ip) On Error Resume Next cmd.Execute If Err.Number <> 0 Then Response.Write "<p>日志记录失败,请检查数据库配置。</p>" Response.Write "<p>错误信息:" & Err.Description & "</p>" Err.Clear End If Response.Redirect "Dep_index.asp" ' 跳转到编号管理页面 Else cwxx = 1 End If Else cwxx = 2 End If End If End If ' 关闭数据库连接 If IsObject(Louconn) Then If Louconn.State = 1 Then Louconn.Close Set Louconn = Nothing End If %> <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>登录失败</title> <style> body { font-family: Arial, sans-serif; background-color: #FFFFFF; /* 背景颜色为白色 */ color: #00539F; /* 文字颜色为司法蓝 */ display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; } .container { width: 300px; padding: 16px; background-color: #FFFFFF; /* 背景颜色为白色 */ border-radius: 5px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); } h1, p { color: #00539F; /* 标题和段落文字颜色为司法蓝 */ } </style> </head> <body> <div class="container"> <h1>登录失败</h1> <% If cwxx = 1 Then Response.Write "<p>密码错误!请重新输入。</p>" ElseIf cwxx = 2 Then Response.Write "<p>对不起,您没有登录的权限,请联系管理员!</p>" End If %> <form action="login.asp" method="POST"> <label for="username"><b>账号:</b></label> <input type="text" name="ZJFZ_User" required> <label for="password"><b>密码:</b></label> <input type="password" name="ZJFZ_MiMa" required> <button type="submit">登录</button> </form> </div> <!--#include file="ZJFZ_copy.asp"--> </body> </html> ``` --- ### 解释 1. **数据库连接与错误处理**: - 使用 `Server.MapPath` 方法确保数据库路径正确。 - 在每次数据库操作后添加 `On Error Resume Next` 捕获可能的错误,并输出详细的错误信息。 2. **日志记录错误捕获**: - 在插入日志时也添加了错误捕获机制,确保即使日志记录失败也不会影响主流程。 3. **Session 安全性**: - 确保 `Session` 变量的安全性,避免直接暴露敏感信息。 4. **IP 地址获取**: - 使用 `Request.ServerVariables` 获取用户的 IP 地址,并记录到日志中。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值