0

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

错误代码 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"))

      %>
4

1 回答 1

0

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

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

(2)创建用户账号:-【应用池用户身份】为app_pool_blahblahblah,密码:xxxxxx

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

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

(5) 在应用程序池中,高级设置: - 将 .Net Framework 版本设置为“v2.0”<-- 修复了默认 asp doc 不起作用的问题!- 将“启用 32 位应用程序”设置为 TRUE。- 将托管管道模式设置为“经典”。- 在 Process Model 下,将 Identity 更改为我们创建的“[app pool user identity]”帐户。- 确保“加载用户配置文件”设置为 FALSE。- 确保“最大工作进程”为“1”。

(6) 邮件:在 IIS 6 管理控制台中:http: //intellitect.com/configuring-windows-smtp-server-on-windows-2008-for-relay/ - 在 SMTP 虚拟服务器属性下: -- “访问”选项卡--> 中继:添加此框的IP,包括127.0.0.1 --“交付”选项卡-->高级:为“完全限定域名”放置框的名称--“交付”选项卡-->高级:为“ smart host" put "dedrelay.secureserver.net" -- "Delivery" 标签 --> Outbound connections:确保限制设置为 100。 -- "Security" 标签 --> 添加 "[app pool user identity]" 和IIS_IUSRS

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

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

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

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

(9) 安装和使用Process Monitor查找权限问题——过滤器

于 2013-06-19T17:47:35.937 回答