ASP+SQLServer2000编程经验积累总结

80酷酷网    80kuku.com

  asp+|server|server2000|sql|sqlserver|编程

  前几天帮人调试一个ASP+SQL2000+IIS5.1/6.0的网站程序,调试过程中遇到的问题如下:

  一、SQLServer登录

  原先存在备份数据库,通过附加数据库导入到SQL Server,原网站数据库不能正常登陆。并且已在安全中添加用户角色。赋予管理员权限以及数据库所有者权限。发现角色添加有问题,检查原因,原导入数据库中包含一个用户角色,去掉后再添加即可。

  尝试登陆,仍然报错:未与信任的SQL连接。选择属性—〉安全性,修改身份验证为:windows和SQL Server。或修改注册表:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\LoginMode的值决定了SQL Server将采取何种身份验证模式。

  1、表示使用"Windows 身份验证"模式

  2、表示使用混合模式(Windows 身份验证和 SQL Server 身份验证).后正常登陆。

  二、IIS5的http 500内部服务器错误

  主要错误表现就是asp程序不能浏览但html静态网页不受影响,查询网络属于“IWAM账号在ActiveDirectory、IIS metabase数据库和COM+应用程序三处的密码无法同步”问题,解决方法参考网络尝试(括号内为尝试结果和处理):

  手动修改:(我按照步骤但是手动修改并没有成功,郁闷)

  1、 重新设置IIS的IWAM账号密码。右键单击 我的电脑->管理,打开计算机管理界面打开 本地用户和组->用户 右键单击 启动IIS进程帐号 IWAM_****(注:****一般是计算机名)点击设置密码,设置为一个你想要的密码。

  2、 同步IIS metabase中IWAM_MYSERVER的密码,在CMD中:c:\inetpub\adminscripts>adsutil set w3svc/wamuserpass "yourpassword"也可:选择"站点 属性"->目录安全性标签->编辑"匿名访问和验证控制"->在弹出的框中选中匿名访问,单击编辑按钮->用户名浏览,选择IWAM_MACHINE,密码框中输入同一的密码,选中"允许IIS控制密码"->确定。

  注意:

  在WIN2000中,查看到的密码为星号,若要不为星号,必须要先修改adsutil.vbs文件。

  a.到c盘 inetpub\adminscripts?找到adsutil.vbs? (根据装系统时设定的不同,有的路径可能不一样)

  b.右键单击,用记事本打开

  c.查找 IsSecureProperty = True??注意=前后各有一个空格

  d.将 IsSecureProperty = True 改为 IsSecureProperty = False

获取 IWAM 帐户密码命令: cscript.exe adsutil.vbs get w3svc/wamuserpass
获取 IUSR 帐户密码命令: cscript.exe adsutil.vbs get w3svc/anonymoususerpass

  输入以上命令,按回车可分别查看IWAM和IUSR的密码。

  修改密码命令:

修改 IWAM 帐户密码 cscript.exe adsutil.vbs set w3svc/wamuserpass "password"?
修改 IUSR 帐户密码 cscript.exe adsutil.vbs set w3svc/anonymoususerpass "password"

  password 设置为你想修改的密码,即与第一步中你设置的用户IWAM_****的相同,按回车即可修改完成。

  修改密码前请一定停止所有的Internet信息服务,否则后面可能会出错,并且IWAM帐户可能会被锁定。

  3、 同步COM+应用程序所用的IWAM_MYSERVER密码,在CMD中:

  c:\inetpub\adminscripts>cscript synciwam.vbs –v。不成功。也可:

  (1)启动组件服务管理单元: “运行”->“mmc”,启动管理控制台,打开“添加/删除管理单元”对话框,将“组件服务”管理单元添加上。

  (2)找到“组件服务”->“计算机”->“我的电脑”->“com+应用程序”->“out-of-process pooled applications”,右击“out-of-process pooled applications”->“属性”。

  (3)切换到“out-of-process pooled applications”属性对话框的“标识”选项卡。选择“此用户”,浏览,选择用户名“IWAM_MACHINE”。这些都是缺省的。在下面的“密码”和“确认密码”文本框内输入正确的密码,确定退出。

  (4)系统如果提示“应用程序被一个以上的外部产品创建。你确定要被这些产品支持吗?”时确定即可。

  (5)如果在iis中将其它一些web的“应用程序保护”设置为“高(独立的)”,那么这个web所使用的com+应用程序的iwam账号密码也需要同步。

  但是在进行第三步操作时总是报8004e00f错误。进入组件服务,查看组件服务/计算机/我的电脑/COM+应用程序,结果报错"COM+ 无法与 Microsoft 分布式事务协调程序交谈",无法查看里面的对象。在事件查看器中msdtc服务没有正常启动。解决方法:运行 msdtc -resetlog
最后解决:"COM+ 无法与 Microsoft 分布式事务协调程序交谈"在安装了Windows组件中的消息队列后,就不会出现这个错误了,同时"消息队列"组件又对服务中的"Distributed Transaction Coordinator"(即msdtc服务)有依存关系,这个服务必须启用,才可以安装消息队列组件!消息队列装好后,COM+应用程序菜单就可以打开了,表示其已正常工作!如果在这个时候再装IIS或者把IIS卸载重装,就正常了!实际上,手工同步密码太过麻烦,成功率不高!

  三、数据库中的存储内容在ASP页面不解析

  问题表现:网页原来使用正常,但是在使用了一段时间之后很多内容不能正常显示。

  问题分析:开始以为是连接池问题,后来发现没什么关系,在页面上察看源码已经将数据库中的内容读了出来,却没有在页面上展现。发现是出现了"\"符号。这个符号在ASP中被认为是转义字符的特殊字符,无法解析,故无法正常显示。 

分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: