【问题标题】:Porting asp website from iis6 to iis7 windows 2008将asp网站从iis6移植到iis7 windows 2008
【发布时间】:2013-06-19 00:38:37
【问题描述】:

我将 iis 网站从 windows 2003 iis6 移至 2008 iis 7。由于某种原因,此 asp 代码停止工作。我启用了跟踪,这就是我得到的:

ErrorCode 800a000d 描述类型不匹配。

我在If broj > 0 Then 线上得到它。这是因为经典的 asp 不能在 IIS7 上工作吗?

 <%
      Dim cate, SQL, broj
      cate = Request("cate")


      SQL = "select count(*) as count from members where category_id = '" & cate & "' and status_flag <> 'NON-MEMBER' and status = 'APPROVED' order by company;"
      rs.Open SQL,Con,adOpenKeyset,adLockOptimistic
     broj = rs("count")


      If broj > 0 Then   // <-- this is the line where i get error ErrorCode 800a000d Description Type mismatch//

         rs.close
         rs.PageSize = 3
         rs.CursorLocation = adUseClient

         SQL = "select * from members where category_id = '" & cate & "' and status_flag <> 'NON-MEMBER' and status = 'APPROVED' order by company;"
         rs.Open SQL,Con

         datum = MonthName(Month(rs("last_updated"))) & " " & Day(rs("last_updated")) & ", " & Year(rs("last_updated"))

      %>

【问题讨论】:

  • 你试过'if cint(broj) > 0'
  • 您对该代码的 SQL 注入持开放态度,您可能希望清理它,即使它是内部的。约翰上面的回答是正确的,无论出于何种原因,数据似乎都以字符串而不是 int 的形式返回。

标签: iis-7 asp-classic


【解决方案1】:

这是我在将一堆经典 ASP 网站从 IIS 6 迁移到 7 时汇总的清单:

(1) 不要以 .com 结尾的站点文件夹命名。

(2) 创建用户帐号: - [应用池用户身份] 为 app_pool_blahblahblah,密码:xxxxxx

(3) 在服务器管理器中,右键单击“Web 服务器 (IIS)”并选择“添加角色服务”。添加 IIS 6 管理兼容性。

(4) 在服务器管理器功能下添加 SMTP 服务器。 安装 IIS6 资源工具包,以便您可以 使用元数据库资源管理器。 授予 [app pool user identity] 用户对 IIS Metabas 中 /Local Machine/SmtpSvc/ 和 /Local Machine/SmtpSvc/1/ 节点的读取权限

(5) 在应用程序池中,高级设置: - 将 .Net Framework 版本设置为“v2.0”

(6) 邮件:在 IIS 6 管理控制台中: http://intellitect.com/configuring-windows-smtp-server-on-windows-2008-for-relay/ - 在 SMTP 虚拟服务器属性下: -- “访问”选项卡 --> 中继:添加此框的IP,包括127.0.0.1 -- "Delivery" 标签 --> Advanced: for "fully qualified domain name" put name of box --“交付”选项卡-->高级:对于“智能主机”放置“dedrelay.secureserver.net” -- “交付”选项卡 --> 出站连接:确保限制设置为 100。 -- “安全”选项卡 --> 添加“[应用程序池用户身份]”和 IIS_IUSRS

(7) 在 IIS 7.5 下的网站: - 在 ASP 下: -- 仅在出现问题时:将启用缓冲设置为“false” -- 在限制下将最大请求实体和缓冲限制更改为 1024000000 -- 将脚本语言设置为“vbscript” -- 将“向浏览器发送错误”设置为 true - 身份验证 --> 编辑“匿名身份验证”并设置为应用程序池身份。
- 仅在出现问题时:在错误页面下:在 404 下设置为“/home.asp”和“执行 URL” - 仅在出现问题时:编辑 c:\windows\system32\inetsrv\config\applicationHost.config:更改为“允许” - 在管理(底部)下进入“配置编辑器”。 -- 在下拉列表中转到 System.web --> http 运行时并将 maxRequestLength 更改为 1024000000 -- 在下拉列表中转到 System.webserver/security/requestFiltering --> chg allowDoubleEscaping=true

(8) 为以下文件夹设置“修改”权限: - 窗户\温度 -inetpub\temp -inetpub\mailroot - 仅在出现问题时:windows\serviceprofiles\networkservice\AppData\Local\Temp?

并在注册表中设置权限: - 仅在出现问题时:HKLM\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines?

对于这些用户帐户: - IIS_IUSRS - [应用程序池用户身份] - 网络服务

(9) 安装和使用进程监视器查找权限问题-过滤器

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    • 2012-09-06
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    相关资源
    最近更新 更多