Com+服务器应用程序CreateObject问题

zaka 2003-08-21 09:31:37
在一台win2000 Server机器上创建了一个Com+服务器应用程序,导入动态库,Com+组件创建成功,导出msi

然后在一台客户机上CreateObject来创建服务器上新建的组件对象
如果客户机是win2000,CreateObject一点问题都没有,包括新生成对象的方法调用,也可以正常运行。
但如果客户机是Win98,安装msi,提示Win98不支持Com+,安装到一半,退出。
然后,我直接把服务器上那个DLL拷贝到客户机,注册。运行程序,有两种情况:
1.Err.Number = 70 ,提示拒绝的权限;
2.Activx不能创建对象。
两台机器同一个域(工作组)中,我在服务器端已把安全设置设到最低。
98下应该怎么解决??郁闷中...
...全文
38 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
heroes3player 2003-08-24
  • 打赏
  • 举报
回复
降级使用吧,变成MTS应该可以的,呵呵
doudou8090 2003-08-24
  • 打赏
  • 举报
回复
帮你顶
myoffffficeMg 2003-08-24
  • 打赏
  • 举报
回复
我也碰到这样的问题。客户端用的是2000 prefissonal 板
zaka 2003-08-22
  • 打赏
  • 举报
回复
真的不支持么???55555~~~~
是不是可以安装相关升级包来解决啊?
zaka 2003-08-21
  • 打赏
  • 举报
回复
顶,顶,顶,help~
zaka 2003-08-21
  • 打赏
  • 举报
回复
自己up下
hxy2003 2003-08-21
  • 打赏
  • 举报
回复
可能是楼上的说的这样子,不支持
lilaclone 2003-08-21
  • 打赏
  • 举报
回复
98下不能支持COM+组件服务,只能把客户端升级到Win2000Professional版
zaka 2003-08-21
  • 打赏
  • 举报
回复
up
书名: ASP 3高级编程 英文原书名: Professional Active Server Pages 3.0 作者: Richard Anderson Chris Blexrud 译者: 刘福太 张立民 金慧琴 梁发麦 书号: 7-111-07678-8 页码: 925 定价: ¥89.00 会员价: ¥80.10 币值: 801 出版社: 机械工业出版社 出版日期: 2000-10-30 包含在Windows 2000中的Active Server Pages 3.0 (ASP 3.0)是Microsoft公司推出的又一个支持Internet的功能强大的网页制作软件包,除了继续保持其适应于各种浏览器的基本特征外,与ASP 2.0相比,功能更加强大,目前已成为开发Internet应用程序的理想选择。本书第1~7章介绍了ASP的基础知识、ASP 3.0的变化、ASP的对象模型、使用ASP脚本和外部组件的所要求的基本概念。第8~12章介绍了通用数据的访问和连接问题,包括ADO、UDA和XML。第13~18章介绍了使用ASP建立组件的问题,以及COM和COM+如何改变组件的环境。第19~23章是关于ASP与BackOffice类应用软件的结合问题,如Microsoft Message Queue Server、Collaborative Data Objects、Microsoft Exchange和Active Directory等等。第24~27章是在企业环境中使用ASP的安全性、性能和可扩展性等问题。第28章和附录提供了一个XML驱动的在线报纸示例和大量以表格形式给出的相关资料。本书不仅为Internet开发人员提供了详实的开发编程指导,也是致力于Internet网络应用与开发的广大科技人员和大专院校相关专业师生的一本重要的自学、教学参考书。 译者序 前言 第1章 ASP基础 1 1.1 ASP的起源 1 1.1.1 HTML的起源 2 1.1.2 动态页面的起源 2 1.2 ASP如何与IIS连接 5 1.2.1 关于应用程序的映射 5 1.2.2 处理一个ASP文件 7 1.3 相关设置问题和管理 12 1.3.1 IIS的安装 12 1.3.2 IIS管理工具 15 1.3.3 常见的管理任务 18 1.4 ASP 3.0对象模型概要 22 1.4.1 对象环境概念 22 1.4.2 ASP内置的对象 23 1.5 ASP 3.0中的新特性 24 1.5.1 ASP 3.0新特性概要 24 1.5.2 对ASP 2.0的改进 26 1.5.3 VBScript 5.0中的新特性 28 1.5.4 JScript 5.0中的新特性 30 1.5.5 其他的新特性 31 1.6 小结 32 第2章 请求和响应的处理 33 2.1 客户端和服务器的交流 33 2.2 Request和Response对象 35 2.2.1 Request对象成员的概述 35 2.2.2 Response对象成员概述 36 2.3 使用Form和QueryString集合 38 2.3.1 访问ASP集合的一般技术 38 2.3.2 访问和更新Cookies集合 44 2.3.3 Form和QueryString的差异 46 2.3.4 查看Request和Response对象内容 47 2.3.5 ASP中cookie的使用 52 2.4 使用ServerVariables集合 53 2.4.1 “自引用”页面 54 2.4.2 检测浏览器的版本 55 2.4.3 检测浏览器的语言 56 2.4.4 其他有用的ServerVariables集合的值 57 2.5 其他Request和Response技巧 57 2.5.1 连接、缓冲和页面重定向的管理 58 2.5.2 操作HTTP报头 60 2.5.3 使用客户证书 65 2.5.4 读写二进制数据 67 2.5.5 创建定制的日志消息 67 2.6 小结 69 第3章 ASP应用程序与会话 70 3.1 Web上的状态管理 70 3.1.1 状态的准确定义 70 3.1.2 状态的重要性 71 3.1.3 在Web上创建状态 71 3.2 Web应用程序的定义 73 3.2.1 ASP应用程序的定义 73 3.2.2 ASP会话的定义 81 3.3 ASP的Application对象和Session对象 83 3.3.1 ASP的Application对象成员概述 84 3.3.2 ASP的Session对象成员概述 85 3.3.3 使用Application和Session的事件 86 3.3.4 活动中的ASP Application对象 89 3.3.5 活动中的ASP Session对象 93 3.4 小结 96 第4章 服务器进程和ASP Server对象 98 4.1 动态页中服务器端的处理 98 4.2 服务器端的包含指令 100 4.2.1 不可思议的ASP #include指令 100 4.2.2 服务器端包含指令概要 102 4.2.3 服务器端包含指令的例子 104 4.3 ASP Server对象 109 4.3.1 ASP Server对象成员概述 109 4.3.2 创建其他对象的实例 110 4.3.3 执行其他的网页 114 4.3.4 Server对象的错误处理 118 4.3.5 获取Server对象的路径信息 125 4.3.6 使用Server对象格式化数据 127 4.4 小结 132 第5章 脚本运行期库对象 134 5.1 脚本对象的定义 134 5.1.1 不同类型的对象和组件 134 5.1.2 VBScript和JScript脚本对象 135 5.2 创建对象和组件实例 136 5.2.1 使用Server.CreateObject方法 136 5.2.2 使用<OBJECT>元素 136 5.2.3 Server.CreateObject与<OBJECT>的 区别 138 5.2.4 组件线程模型 138 5.2.5 引用对象类型库 139 5.2.6 在客户端上创建对象实例 140 5.3 Scripting.Dictionary对象 141 5.3.1 创建和使用Dictionary对象 141 5.3.2 Dictionary对象示例 143 5.4 Scripting.FileSystemObject对象 148 5.4.1 FileSystemObject对象成员概要 149 5.4.2 使用驱动器 151 5.5 Scripting.TextStream对象 161 5.5.1 创建TextStream对象的方法 161 5.5.2 TextStream对象成员概要 163 5.5.3 TextStream对象举例 165 5.6 小结 168 第6章 活动服务器组件 169 6.1 脚本对象与服务器组件的比较 169 6.2 ASP/IIS可安装组件 171 6.2.1 使用示例页面 172 6.2.2 Content Linking组件 173 6.2.3 Ad Rotator组件 177 6.2.4 Counters组件 182 6.2.5 Browser Capabilities组件 184 6.2.6 Content Rotator组件 188 6.2.7 Page Counter组件 190 6.2.8 Permission Checker组件 191 6.2.9 MyInfo 组件 194 6.2.10 Tools组件 195 6.2.11 Logging Utility组件 200 6.3 第三方服务器组件 204 6.3.1 BrowserHawk组件 204 6.3.2 SA-FileUp组件 206 6.3.3 RegEx注册表访问组件 207 6.4 小结 209 第7章 调试和错误处理 210 7.1 错误的种类 211 7.1.1 语法或“编译”错误 211 7.1.2 语义或“运行期”错误 215 7.2 各种运行期错误 218 7.2.1 逻辑错误 219 7.2.2 脚本运行期错误 220 7.2.3 ASP和SSI的运行期错误 221 7.2.4 客户端脚本错误 222 7.3 防止错误 224 7.4 处理错误 229 7.4.1 ASP缺省错误处理器 229 7.4.2 VBScript错误处理 230 7.4.3 JScript错误处理 232 7.4.4 使用IIS错误页面 232 7.5 程序调试—发现及处理错误 238 7.5.1 常规调试技术 238 7.5.2 Microsoft Script Debugger 239 7.5.3 获得ASP的帮助和支持 242 7.6 小结 243 第8章 ADO基础 244 8.1 ADO的定义 244 8.1.1 OLE DB和ADO的体系结构 245 8.1.2 消费者与提供者 246 8.1.3 提供者和驱动程序 247 8.2 ADO 2.5对象模型 248 8.2.1 Connection对象 248 8.2.2 Command对象 249 8.2.3 Recordset对象 249 8.2.4 Record对象 249 8.2.5 Stream对象 250 8.2.6 集合 250 8.2.7 ADO常数 252 8.3 连接到数据存储 252 8.3.1 连接字符串 253 8.3.2 使用包含文件 256 8.3.3 使用连接状态 256 8.3.4 连接语法 257 8.3.5 连接的例子 257 8.3.6 连接缓冲池 257 8.4 记录集 258 8.4.1 光标 258 8.4.2 锁定 260 8.4.3 创建记录集 261 8.4.4 过滤记录集 265 8.4.5 查找记录 266 8.4.6 修改记录 267 8.5 管理错误 269 8.5.1 Errors集合 269 8.5.2 ASP页面中的ADO错误 270 8.6 小结 272 第9章 连接、命令和过程 273 9.1 Connection对象 273 9.1.1 返回一个记录集 273 9.1.2 操作命令 274 9.2 Command对象 274 9.2.1 返回记录集 274 9.2.2 操作命令 275 9.2.3 存储过程 276 9.3 优化 289 9.3.1 常用的ADO技巧 289 9.3.2 对象变量 289 9.3.3 高速缓存大小 290 9.3.4 数据库设计 290 9.3.5 数据高速缓存 291 9.4 数据整形 293 9.4.1 使用数据整形 294 9.4.2 性能 297 9.5 小结 298 第10章 ASP与客户端数据 299 10.1 断开连接的记录集 299 10.2 远程数据服务 300 10.2.1 RDS服务器组件 300 10.2.2 RDS客户组件 301 10.2.3 支持RDS的浏览器 301 10.2.4 数据源对象 301 10.2.5 数据绑定 308 10.2.6 更新数据 316 10.3 在服务器和客户之间传输数据 319 10.3.1 基于服务器的组件 319 10.3.2 DataSpace对象 320 10.3.3 使用服务器端组件的优点 322 10.3.4 注册服务器端组件 322 10.3.5 自定义处理器 323 10.4 记录集分页 326 10.4.1 利用ASP页面分页记录集 327 10.4.2 利用ADO分页 330 10.4.3 利用SQL Server完成记录集分页 333 10.4.4 数据分页小结 336 10.5 使用数据库中的图像 337 10.6 小结 338 第11章 使用XML数据 339 11.1 XML的定义 339 11.1.1 XML和HTML的差别 340 11.1.2 标记和元素 343 11.1.3 模式和文档类型定义 346 11.1.4 名称空间 347 11.1.5 文档对象模型 348 11.2 ADO和IE5中的XML 354 11.2.1 存储为XML形式的ADO记录集 354 11.2.2 ADO记录集名称空间 355 11.2.3 ADO记录集模式 355 11.2.4 IE数据岛和绑定 358 11.2.5 以XML数据格式保存记录集 361 11.2.6 打开记录集 365 11.3 用XSL来设计XML 367 11.4 相关的领域 371 11.5 用于SQL Server的XML技术预览 372 11.6 小结 373 第12章 通用数据访问 375 12.1 UDA的构想 375 12.2 OLE DB提供者 376 12.2.1 Indexing Service 376 12.2.2 活动目录 383 12.2.3 Exchange Server 386 12.2.4 定制的提供者 386 12.3 半结构化的数据 389 12.3.1 Record对象 390 12.3.2 Internet 发布 390 12.3.3 WebDAV 401 12.4 企业数据 401 12.4.1 Access和SQL Server二者取一 402 12.4.2 SNA Server和传统数据访问 404 12.5 企业中的ASP 405 12.6 小结 407 第13章 组件和网络应用程序结构 408 13.1 分布式应用程序的结构 408 13.1.1 分层应用程序 408 13.1.2 Windows DNA 410 13.1.3 Windows DNA服务 411 13.1.4 网络结构 413 13.2 组件 415 13.2.1 组件定义 415 13.2.2 COM和COM+ 415 13.2.3 组件服务 416 13.2.4 以数据为中心的组件 417 13.2.5 业务组件 417 13.2.6 用户界面组件 418 13.3 组件应用程序设计 418 13.3.1 转换到组件 419 13.3.2 应用程序设计 419 13.3.3 设计网络组件 420 13.3.4 组件设计 422 13.3.5 组件集成 423 13.3.6 建立组件 424 13.4 应用程序设计范例的研究 425 13.4.1 明确问题 425 13.4.2 应用程序的设计 426 13.4.3 设计权衡 430 13.4.4 设计小结 431 13.5 小结 432 第14章 COM、COM+和ASP 433 14.1 COM的内容 433 14.1.1 COM无处不在 434 14.1.2 COM+的三个方面 434 14.1.3 COM开发工具 436 14.2 接口 437 14.2.1 组件 438 14.2.2 缺省接口 438 14.2.3 GUID—实体的确定名称 439 14.2.4 接口的详细内容 439 14.2.5 IUnknown接口 442 14.2.6 使用IDispatch—后期绑定 442 14.2.7 组件信息的中央存储库 444 14.3 COM+运行期的变化 446 14.3.1 配置的和非配置的组件 447 14.3.2 COM+类别 447 14.4 创建一个ASP COM组件 447 14.4.1 组件的接口 449 14.4.2 创建组件 449 14.5 小结 457 第15章 COM+应用程序 458 15.1 微软组件服务(COM+) 458 15.1.1 拦截原理 459 15.1.2 COM+结构 461 15.1.3 组件/对象的生存期和状态 464 15.2 单元和线程模型 467 15.2.1 线程 467 15.2.2 单元 468 15.2.3 线程模型的属性 470 15.2.4 线程模型和范围 472 15.3 COM+应用程序 476 15.3.1 ObjectContext接口 476 15.3.2 Visual Basic COM+组件 479 15.4 组件服务 487 15.5 组件的调试 494 15.6 小结 496 第16章 ASP脚本组件 497 16.1 使用WSC的环境 497 16.2 一个Windows脚本组件 498 16.2.1 发展历史 498 16.2.2 HelloWorld WSC 499 16.3 WSC的结构 499 16.3.1 描述层 500 16.3.2 脚本层 503 16.3.3 运行期层 504 16.4 可用的接口 504 16.5 编写一个ASP脚本组件 505 16.5.1 AspTable组件 506 16.5.2 使用AspTable对象 511 16.6 ASP脚本组件的特点 513 16.6.1 选择正确的工具 513 16.6.2 脚本组件与VBScript类的比较 513 16.7 小结 514 第17章 用C++建立ASP组件 515 17.1 C++语言 515 17.1.1 C++简史 515 17.1.2 使用C++的原因 516 17.1.3 不使用C++的原因 517 17.1.4 把ASP技巧转到C++上 517 17.2 VC++库 518 17.2.1 微软基础类库 518 17.2.2 活动模板库 519 17.2.3 标准模板库 519 17.3 建立一个C++服务器组件 521 17.3.1 问题 522 17.3.2 设计 522 17.3.3 实现 522 17.3.4 测试 531 17.3.5 错误处理 533 17.3.6 调试 535 17.4 小结 537 第18章 对C++组件的进一步讨论 538 18.1 与ASP进行接口 538 18.2 与COM+进行接口 543 18.2.1 IObjectContext的事务处理 546 18.2.2 IObjectControl的对象缓冲 547 18.3 数据访问 547 18.3.1 通过C++使用ADO 548 18.3.2 OLE DB消费者模板 553 18.3.3 使用ADO,还是使用OLE DB消费者 模板 557 18.4 小结 557 第19章 ASP和事务性Web应用程序 558 19.1 事务处理的定义 558 19.1.1 保持应用程序的完整性 558 19.1.2 ACID属性 559 19.2 分布式事务 560 19.3 事务性COM+应用程序 562 19.3.1 Transaction Support属性 562 19.3.2 活动与同步 564 19.3.3 事务的生存期 567 19.3.4 事务访问自定义资源 573 19.4 COM+事务和IIS 574 19.4.1 事务性ASP 574 19.4.2 事务性ASP中的ObjectContext 对象 575 19.4.3 事务事件 576 19.5 用ASP和COM+进行联机订购 577 19.5.1 业务需要 577 19.5.2 设计 577 19.5.3 实现 578 19.5.4 程序验证 585 19.6 小结 586 第20章 ASP和消息队列服务器 587 20.1 消息排队的定义 587 20.1.1 MSMQ的定义 588 20.1.2 使用MSMQ和ASP的原因 589 20.2 MSMQ结构 591 20.2.1 服务器类型 591 20.2.2 客户类型 592 20.2.3 站点布局图 593 20.2.4 投递选项 593 20.3 管理MSMQ 594 20.3.1 增加队列 594 20.3.2 消息队列的属性 596 20.3.3 消息属性 597 20.4 MSMQ对象模型 599 20.4.1 MSMQApplication对象 600 20.4.2 MSMQQuery对象 600 20.4.3 MSMQQueueInfos集合 601 20.4.4 MSMQQueueInfo对象 601 20.4.5 MSMQQueue对象 602 20.4.6 MSMQMessage对象 603 20.4.7 MSMQEvent对象 605 20.4.8 MSMQTransaction对象 605 20.4.9 MSMQTransactionDispenser对象 605 20.4.10 MSMQCoordinatedTransaction Dispenser对象 606 20.4.11 访问MSMQ的其他方式 606 20.5 用于MSMQ的MS DTC事务 606 20.6 高级MSMQ消息 606 20.7 COM+队列化组件 609 20.8 扩展联机订货的示例 610 20.8.1 在组件中添加MSMQ 610 20.8.2 处理队列化订单 612 20.9 小结 614 第21章 ADSI和AD介绍 615 21.1 ADSI的用途 615 21.2 必需的软件 616 21.3 AD的内部结构 617 21.3.1 目录里的对象和属性 617 21.3.2 对象的类 618 21.3.3 容器和叶 619 21.3.4 模式 619 21.3.5 继承 620 21.4 目录的特征 622 21.4.1 优化查找 622 21.4.2 查找功能 622 21.4.3 开放性 622 21.4.4 事务处理 622 21.4.5 复制 623 21.5 常见目录 623 21.5.1 Netscape目录服务器 623 21.5.2 IIS元数据库 623 21.5.3 Exchange Server目录和站点服务器 成员目录 623 21.5.4 Netware目录服务 623 21.5.5 WinNT 623 21.6 ADSI的适用范围 624 21.7 LDAP的适用范围 625 21.8 绑定到一个ADSI对象 626 21.8.1 ADSI对象和Directory对象 626 21.8.2 查看ADSI对象的属性 627 21.9 浏览目录:枚举容器的所有子对象 628 21.10 使用模式定义的属性 631 21.11 Get和GetEx 634 21.12 PropertyBrowseEx示例 634 21.13 AD与WinNT提供者比较 636 21.14 属性缓存 638 21.15 设置属性的值 639 21.16 目录的验证 639 21.17 查找 641 21.17.1 用以查找ADSI目录的命令字符串 644 21.17.2 查找过滤器 645 21.18 小结 646 第22章 ASP和用于NT服务器的CDO 647 22.1 CDO是什么 647 22.2 使用CDO的原因 647 22.2.1 NT服务器下的CDO 648 22.2.2 CDO与CDONTS的比较 648 22.2.3 CDO for Windows 2000 649 22.3 CDONTS库 649 22.3.1 引用类型库 650 22.3.2 NewMail对象 651 22.3.3 其他的CDONTS对象 658 22.3.4 设置SMTP Service 666 22.3.5 SMTP Service配置 667 22.4 在ASP应用程序中使用CDONTS 670 22.4.1 简单邮箱应用程序 671 22.4.2 Inbox应用程序 676 22.5 小结 683 第23章 ASP、CDO与Exchange Server 684 23.1 CDO库 684 23.1.1 通用/共享对象 684 23.1.2 Session对象 695 23.1.3 文件夹 697 23.1.4 地址列表 698 23.1.5 信息存储 699 23.1.6 消息 699 23.1.7 通用属性 704 23.2 邮件客户端应用程序 705 23.2.1 概述 705 23.2.2 服务器配置 705 23.2.3 类型库 707 23.2.4 Login.asp 707 23.2.5 FrameSet.asp 708 23.2.6 FolderList.asp 709 23.2.7 MessageList.asp 712 23.2.8 ViewMessage.asp 715 23.2.9 SendMessage.asp 719 23.2.10 SendMail.asp 722 23.2.11 Logout.asp 725 23.3 小结 725 第24章 服务器防护 726 24.1 安全的定义 726 24.1.1 Internet上的安全问题 726 24.1.2 安全策略 728 24.2 Windows 2000的防护 730 24.2.1 磁盘格式 730 24.2.2 Window 2000安全检查列表 730 24.2.3 防火墙和代理服务器 737 24.3 IIS 5.0的防护 739 24.3.1 IIS的安全配置 739 24.3.2 验证方法 742 24.4 SQL Server 7.0和ODBC的安全 744 24.4.1 保护sa帐号 744 24.4.2 为数据库访问建立替代帐号 744 24.5 建立自己的ASP安全系统 746 24.6 小结 755 第25章 证书的使用 756 25.1 安全性、一致性和可靠性 756 25.2 证书与证书机构 759 25.3 从证书机构获取证书 762 25.4 使用证书 768 25.4.1 使用服务器证书 768 25.4.2 使用个人证书 768 25.4.3 使用软件发行者证书 769 25.4.4 客户证书映射 769 25.4.5 证书的生存期 772 25.5 管理证书 772 25.5.1 证书存储 772 25.5.2 IIS证书管理 774 25.5.3 IE证书管理 775 25.5.4 Outlook Express证书管理 776 25.6 证书与ASP 776 25.7 成为自己的证书机构 777 25.7.1 Certificate Services 778 25.7.2 建立证书机构 779 25.7.3 管理证书机构 779 25.7.4 与证书机构的交互 780 25.8 小结 781 第26章 优化ASP的性能 782 26.1 衡量工作性能的标准 782 26.1.1 吞吐量 782 26.1.2 响应时间 783 26.1.3 衡量性能的其他指标 784 26.2 改善服务器的硬件性能 786 26.2.1 内存 786 26.2.2 硬盘 787 26.2.3 网络带宽 787 26.2.4 CPU 787 26.2.5 更多的服务器 787 26.3 性能的调整 787 26.3.1 解决性能问题 787 26.3.2 强度工具 788 26.3.3 脚本优化 789 26.3.4 会话和应用程序状态 789 26.3.5 安全套接字层 793 26.3.6 进程隔离 793 26.3.7 缓存技术和字典 794 26.3.8 数据库性能 795 26.3.9 真正充足的时间:MSMQ 796 26.3.10 脚本与组件的比较 796 26.3.11 多处理器的可扩展性 798 26.3.12 线程闸门 800 26.3.13 设置元数据库 801 26.3.14 性能计数器 802 26.4 各种小技巧 805 26.4.1 Stm的重命名技巧 805 26.4.2 避免嵌套的包含 806 26.4.3 不使用非脚本映射的文件扩展名 806 26.4.4 关闭脚本调试器 806 26.4.5 最小化脚本块转换 806 26.4.6 不要混用脚本引擎 807 26.4.7 在“费时”操作前使用Response.Is Client Connected 807 26.4.8 使用<OBJECT>标记 808 26.4.9 不使用OnStartPage和OnEndPage 808 26.4.10 发挥客户端的作用 808 26.5 小结 808 第27章 建立多服务器网站 810 27.1 多服务器网站 810 27.1.1 Web阵的不足 811 27.1.2 Web阵基础 812 27.2 负载平衡模式 813 27.2.1 DNS循环复用法 813 27.2.2 硬件负载平衡 814 27.2.3 TCP/IP Network Load Balancing 817 27.2.4 复合方式 819 27.2.5 High Availability Clustering Service 820 27.2.6 COM+Dynamic Load Balancing 822 27.3 状态管理 824 27.3.1 不管理状态 824 27.3.2 客户端存储 824 27.3.3 亲和性 824 27.3.4 在一个中心服务器上存储状态 826 27.4 安全 826 27.5 小结 827 第28章 XML驱动的报纸实例 829 28.1 报纸的剖析 829 28.1.1 作者写稿 831 28.1.2 编辑修改 832 28.1.3 读者阅读 834 28.1.4 结构要求 835 28.2 网站的大脑:settings.xml 835 28.2.1 元素 836 28.2.2 元素 836 28.2.3 元素 836 28.2.4 准备global.asa 837 28.2.5 插入导航 838 28.2.6 元素 840 28.3 网站的躯干:headlines.asp 841 28.3.1 ShowHeadlines过程 842 28.3.2 ShowBlurbs过程 843 28.3.3 ShowBriefs过程 844 28.3.4 ShowStory过程 846 28.3.5 使用ShowStory过程 849 28.3.6 主页 852 28.4 管理工具 854 28.4.1 setting_stories.asp 854 28.4.2 setting_glossary.asp 858 28.4.3 关于admin文件夹的其他内容 861 28.5 系统集成 861 28.6 小结 864 附录A ASP 3.0的对象模型 865 附录B 脚本运行期库对象 871 附录C 微软服务器组件 877 附录D 错误代码 881 附录E ADO 2.5对象模型 893 附录F ADO 2.5常量 902 附录G 有用的资料 920 附录H p2p.wrox.com 926
书名: ASP 3高级编程 英文原书名: Professional Active Server Pages 3.0 作者: Richard Anderson Chris Blexrud 译者: 刘福太 张立民 金慧琴 梁发麦 书号: 7-111-07678-8 页码: 925 定价: ¥89.00 会员价: ¥80.10 币值: 801 出版社: 机械工业出版社 出版日期: 2000-10-30 包含在Windows 2000中的Active Server Pages 3.0 (ASP 3.0)是Microsoft公司推出的又一个支持Internet的功能强大的网页制作软件包,除了继续保持其适应于各种浏览器的基本特征外,与ASP 2.0相比,功能更加强大,目前已成为开发Internet应用程序的理想选择。本书第1~7章介绍了ASP的基础知识、ASP 3.0的变化、ASP的对象模型、使用ASP脚本和外部组件的所要求的基本概念。第8~12章介绍了通用数据的访问和连接问题,包括ADO、UDA和XML。第13~18章介绍了使用ASP建立组件的问题,以及COM和COM+如何改变组件的环境。第19~23章是关于ASP与BackOffice类应用软件的结合问题,如Microsoft Message Queue Server、Collaborative Data Objects、Microsoft Exchange和Active Directory等等。第24~27章是在企业环境中使用ASP的安全性、性能和可扩展性等问题。第28章和附录提供了一个XML驱动的在线报纸示例和大量以表格形式给出的相关资料。本书不仅为Internet开发人员提供了详实的开发编程指导,也是致力于Internet网络应用与开发的广大科技人员和大专院校相关专业师生的一本重要的自学、教学参考书。 译者序 前言 第1章 ASP基础 1 1.1 ASP的起源 1 1.1.1 HTML的起源 2 1.1.2 动态页面的起源 2 1.2 ASP如何与IIS连接 5 1.2.1 关于应用程序的映射 5 1.2.2 处理一个ASP文件 7 1.3 相关设置问题和管理 12 1.3.1 IIS的安装 12 1.3.2 IIS管理工具 15 1.3.3 常见的管理任务 18 1.4 ASP 3.0对象模型概要 22 1.4.1 对象环境概念 22 1.4.2 ASP内置的对象 23 1.5 ASP 3.0中的新特性 24 1.5.1 ASP 3.0新特性概要 24 1.5.2 对ASP 2.0的改进 26 1.5.3 VBScript 5.0中的新特性 28 1.5.4 JScript 5.0中的新特性 30 1.5.5 其他的新特性 31 1.6 小结 32 第2章 请求和响应的处理 33 2.1 客户端和服务器的交流 33 2.2 Request和Response对象 35 2.2.1 Request对象成员的概述 35 2.2.2 Response对象成员概述 36 2.3 使用Form和QueryString集合 38 2.3.1 访问ASP集合的一般技术 38 2.3.2 访问和更新Cookies集合 44 2.3.3 Form和QueryString的差异 46 2.3.4 查看Request和Response对象内容 47 2.3.5 ASP中cookie的使用 52 2.4 使用ServerVariables集合 53 2.4.1 “自引用”页面 54 2.4.2 检测浏览器的版本 55 2.4.3 检测浏览器的语言 56 2.4.4 其他有用的ServerVariables集合的值 57 2.5 其他Request和Response技巧 57 2.5.1 连接、缓冲和页面重定向的管理 58 2.5.2 操作HTTP报头 60 2.5.3 使用客户证书 65 2.5.4 读写二进制数据 67 2.5.5 创建定制的日志消息 67 2.6 小结 69 第3章 ASP应用程序与会话 70 3.1 Web上的状态管理 70 3.1.1 状态的准确定义 70 3.1.2 状态的重要性 71 3.1.3 在Web上创建状态 71 3.2 Web应用程序的定义 73 3.2.1 ASP应用程序的定义 73 3.2.2 ASP会话的定义 81 3.3 ASP的Application对象和Session对象 83 3.3.1 ASP的Application对象成员概述 84 3.3.2 ASP的Session对象成员概述 85 3.3.3 使用Application和Session的事件 86 3.3.4 活动中的ASP Application对象 89 3.3.5 活动中的ASP Session对象 93 3.4 小结 96 第4章 服务器进程和ASP Server对象 98 4.1 动态页中服务器端的处理 98 4.2 服务器端的包含指令 100 4.2.1 不可思议的ASP #include指令 100 4.2.2 服务器端包含指令概要 102 4.2.3 服务器端包含指令的例子 104 4.3 ASP Server对象 109 4.3.1 ASP Server对象成员概述 109 4.3.2 创建其他对象的实例 110 4.3.3 执行其他的网页 114 4.3.4 Server对象的错误处理 118 4.3.5 获取Server对象的路径信息 125 4.3.6 使用Server对象格式化数据 127 4.4 小结 132 第5章 脚本运行期库对象 134 5.1 脚本对象的定义 134 5.1.1 不同类型的对象和组件 134 5.1.2 VBScript和JScript脚本对象 135 5.2 创建对象和组件实例 136 5.2.1 使用Server.CreateObject方法 136 5.2.2 使用<OBJECT>元素 136 5.2.3 Server.CreateObject与<OBJECT>的 区别 138 5.2.4 组件线程模型 138 5.2.5 引用对象类型库 139 5.2.6 在客户端上创建对象实例 140 5.3 Scripting.Dictionary对象 141 5.3.1 创建和使用Dictionary对象 141 5.3.2 Dictionary对象示例 143 5.4 Scripting.FileSystemObject对象 148 5.4.1 FileSystemObject对象成员概要 149 5.4.2 使用驱动器 151 5.5 Scripting.TextStream对象 161 5.5.1 创建TextStream对象的方法 161 5.5.2 TextStream对象成员概要 163 5.5.3 TextStream对象举例 165 5.6 小结 168 第6章 活动服务器组件 169 6.1 脚本对象与服务器组件的比较 169 6.2 ASP/IIS可安装组件 171 6.2.1 使用示例页面 172 6.2.2 Content Linking组件 173 6.2.3 Ad Rotator组件 177 6.2.4 Counters组件 182 6.2.5 Browser Capabilities组件 184 6.2.6 Content Rotator组件 188 6.2.7 Page Counter组件 190 6.2.8 Permission Checker组件 191 6.2.9 MyInfo 组件 194 6.2.10 Tools组件 195 6.2.11 Logging Utility组件 200 6.3 第三方服务器组件 204 6.3.1 BrowserHawk组件 204 6.3.2 SA-FileUp组件 206 6.3.3 RegEx注册表访问组件 207 6.4 小结 209 第7章 调试和错误处理 210 7.1 错误的种类 211 7.1.1 语法或“编译”错误 211 7.1.2 语义或“运行期”错误 215 7.2 各种运行期错误 218 7.2.1 逻辑错误 219 7.2.2 脚本运行期错误 220 7.2.3 ASP和SSI的运行期错误 221 7.2.4 客户端脚本错误 222 7.3 防止错误 224 7.4 处理错误 229 7.4.1 ASP缺省错误处理器 229 7.4.2 VBScript错误处理 230 7.4.3 JScript错误处理 232 7.4.4 使用IIS错误页面 232 7.5 程序调试—发现及处理错误 238 7.5.1 常规调试技术 238 7.5.2 Microsoft Script Debugger 239 7.5.3 获得ASP的帮助和支持 242 7.6 小结 243 第8章 ADO基础 244 8.1 ADO的定义 244 8.1.1 OLE DB和ADO的体系结构 245 8.1.2 消费者与提供者 246 8.1.3 提供者和驱动程序 247 8.2 ADO 2.5对象模型 248 8.2.1 Connection对象 248 8.2.2 Command对象 249 8.2.3 Recordset对象 249 8.2.4 Record对象 249 8.2.5 Stream对象 250 8.2.6 集合 250 8.2.7 ADO常数 252 8.3 连接到数据存储 252 8.3.1 连接字符串 253 8.3.2 使用包含文件 256 8.3.3 使用连接状态 256 8.3.4 连接语法 257 8.3.5 连接的例子 257 8.3.6 连接缓冲池 257 8.4 记录集 258 8.4.1 光标 258 8.4.2 锁定 260 8.4.3 创建记录集 261 8.4.4 过滤记录集 265 8.4.5 查找记录 266 8.4.6 修改记录 267 8.5 管理错误 269 8.5.1 Errors集合 269 8.5.2 ASP页面中的ADO错误 270 8.6 小结 272 第9章 连接、命令和过程 273 9.1 Connection对象 273 9.1.1 返回一个记录集 273 9.1.2 操作命令 274 9.2 Command对象 274 9.2.1 返回记录集 274 9.2.2 操作命令 275 9.2.3 存储过程 276 9.3 优化 289 9.3.1 常用的ADO技巧 289 9.3.2 对象变量 289 9.3.3 高速缓存大小 290 9.3.4 数据库设计 290 9.3.5 数据高速缓存 291 9.4 数据整形 293 9.4.1 使用数据整形 294 9.4.2 性能 297 9.5 小结 298 第10章 ASP与客户端数据 299 10.1 断开连接的记录集 299 10.2 远程数据服务 300 10.2.1 RDS服务器组件 300 10.2.2 RDS客户组件 301 10.2.3 支持RDS的浏览器 301 10.2.4 数据源对象 301 10.2.5 数据绑定 308 10.2.6 更新数据 316 10.3 在服务器和客户之间传输数据 319 10.3.1 基于服务器的组件 319 10.3.2 DataSpace对象 320 10.3.3 使用服务器端组件的优点 322 10.3.4 注册服务器端组件 322 10.3.5 自定义处理器 323 10.4 记录集分页 326 10.4.1 利用ASP页面分页记录集 327 10.4.2 利用ADO分页 330 10.4.3 利用SQL Server完成记录集分页 333 10.4.4 数据分页小结 336 10.5 使用数据库中的图像 337 10.6 小结 338 第11章 使用XML数据 339 11.1 XML的定义 339 11.1.1 XML和HTML的差别 340 11.1.2 标记和元素 343 11.1.3 模式和文档类型定义 346 11.1.4 名称空间 347 11.1.5 文档对象模型 348 11.2 ADO和IE5中的XML 354 11.2.1 存储为XML形式的ADO记录集 354 11.2.2 ADO记录集名称空间 355 11.2.3 ADO记录集模式 355 11.2.4 IE数据岛和绑定 358 11.2.5 以XML数据格式保存记录集 361 11.2.6 打开记录集 365 11.3 用XSL来设计XML 367 11.4 相关的领域 371 11.5 用于SQL Server的XML技术预览 372 11.6 小结 373 第12章 通用数据访问 375 12.1 UDA的构想 375 12.2 OLE DB提供者 376 12.2.1 Indexing Service 376 12.2.2 活动目录 383 12.2.3 Exchange Server 386 12.2.4 定制的提供者 386 12.3 半结构化的数据 389 12.3.1 Record对象 390 12.3.2 Internet 发布 390 12.3.3 WebDAV 401 12.4 企业数据 401 12.4.1 Access和SQL Server二者取一 402 12.4.2 SNA Server和传统数据访问 404 12.5 企业中的ASP 405 12.6 小结 407 第13章 组件和网络应用程序结构 408 13.1 分布式应用程序的结构 408 13.1.1 分层应用程序 408 13.1.2 Windows DNA 410 13.1.3 Windows DNA服务 411 13.1.4 网络结构 413 13.2 组件 415 13.2.1 组件定义 415 13.2.2 COM和COM+ 415 13.2.3 组件服务 416 13.2.4 以数据为中心的组件 417 13.2.5 业务组件 417 13.2.6 用户界面组件 418 13.3 组件应用程序设计 418 13.3.1 转换到组件 419 13.3.2 应用程序设计 419 13.3.3 设计网络组件 420 13.3.4 组件设计 422 13.3.5 组件集成 423 13.3.6 建立组件 424 13.4 应用程序设计范例的研究 425 13.4.1 明确问题 425 13.4.2 应用程序的设计 426 13.4.3 设计权衡 430 13.4.4 设计小结 431 13.5 小结 432 第14章 COM、COM+和ASP 433 14.1 COM的内容 433 14.1.1 COM无处不在 434 14.1.2 COM+的三个方面 434 14.1.3 COM开发工具 436 14.2 接口 437 14.2.1 组件 438 14.2.2 缺省接口 438 14.2.3 GUID—实体的确定名称 439 14.2.4 接口的详细内容 439 14.2.5 IUnknown接口 442 14.2.6 使用IDispatch—后期绑定 442 14.2.7 组件信息的中央存储库 444 14.3 COM+运行期的变化 446 14.3.1 配置的和非配置的组件 447 14.3.2 COM+类别 447 14.4 创建一个ASP COM组件 447 14.4.1 组件的接口 449 14.4.2 创建组件 449 14.5 小结 457 第15章 COM+应用程序 458 15.1 微软组件服务(COM+) 458 15.1.1 拦截原理 459 15.1.2 COM+结构 461 15.1.3 组件/对象的生存期和状态 464 15.2 单元和线程模型 467 15.2.1 线程 467 15.2.2 单元 468 15.2.3 线程模型的属性 470 15.2.4 线程模型和范围 472 15.3 COM+应用程序 476 15.3.1 ObjectContext接口 476 15.3.2 Visual Basic COM+组件 479 15.4 组件服务 487 15.5 组件的调试 494 15.6 小结 496 第16章 ASP脚本组件 497 16.1 使用WSC的环境 497 16.2 一个Windows脚本组件 498 16.2.1 发展历史 498 16.2.2 HelloWorld WSC 499 16.3 WSC的结构 499 16.3.1 描述层 500 16.3.2 脚本层 503 16.3.3 运行期层 504 16.4 可用的接口 504 16.5 编写一个ASP脚本组件 505 16.5.1 AspTable组件 506 16.5.2 使用AspTable对象 511 16.6 ASP脚本组件的特点 513 16.6.1 选择正确的工具 513 16.6.2 脚本组件与VBScript类的比较 513 16.7 小结 514 第17章 用C++建立ASP组件 515 17.1 C++语言 515 17.1.1 C++简史 515 17.1.2 使用C++的原因 516 17.1.3 不使用C++的原因 517 17.1.4 把ASP技巧转到C++上 517 17.2 VC++库 518 17.2.1 微软基础类库 518 17.2.2 活动模板库 519 17.2.3 标准模板库 519 17.3 建立一个C++服务器组件 521 17.3.1 问题 522 17.3.2 设计 522 17.3.3 实现 522 17.3.4 测试 531 17.3.5 错误处理 533 17.3.6 调试 535 17.4 小结 537 第18章 对C++组件的进一步讨论 538 18.1 与ASP进行接口 538 18.2 与COM+进行接口 543 18.2.1 IObjectContext的事务处理 546 18.2.2 IObjectControl的对象缓冲 547 18.3 数据访问 547 18.3.1 通过C++使用ADO 548 18.3.2 OLE DB消费者模板 553 18.3.3 使用ADO,还是使用OLE DB消费者 模板 557 18.4 小结 557 第19章 ASP和事务性Web应用程序 558 19.1 事务处理的定义 558 19.1.1 保持应用程序的完整性 558 19.1.2 ACID属性 559 19.2 分布式事务 560 19.3 事务性COM+应用程序 562 19.3.1 Transaction Support属性 562 19.3.2 活动与同步 564 19.3.3 事务的生存期 567 19.3.4 事务访问自定义资源 573 19.4 COM+事务和IIS 574 19.4.1 事务性ASP 574 19.4.2 事务性ASP中的ObjectContext 对象 575 19.4.3 事务事件 576 19.5 用ASP和COM+进行联机订购 577 19.5.1 业务需要 577 19.5.2 设计 577 19.5.3 实现 578 19.5.4 程序验证 585 19.6 小结 586 第20章 ASP和消息队列服务器 587 20.1 消息排队的定义 587 20.1.1 MSMQ的定义 588 20.1.2 使用MSMQ和ASP的原因 589 20.2 MSMQ结构 591 20.2.1 服务器类型 591 20.2.2 客户类型 592 20.2.3 站点布局图 593 20.2.4 投递选项 593 20.3 管理MSMQ 594 20.3.1 增加队列 594 20.3.2 消息队列的属性 596 20.3.3 消息属性 597 20.4 MSMQ对象模型 599 20.4.1 MSMQApplication对象 600 20.4.2 MSMQQuery对象 600 20.4.3 MSMQQueueInfos集合 601 20.4.4 MSMQQueueInfo对象 601 20.4.5 MSMQQueue对象 602 20.4.6 MSMQMessage对象 603 20.4.7 MSMQEvent对象 605 20.4.8 MSMQTransaction对象 605 20.4.9 MSMQTransactionDispenser对象 605 20.4.10 MSMQCoordinatedTransaction Dispenser对象 606 20.4.11 访问MSMQ的其他方式 606 20.5 用于MSMQ的MS DTC事务 606 20.6 高级MSMQ消息 606 20.7 COM+队列化组件 609 20.8 扩展联机订货的示例 610 20.8.1 在组件中添加MSMQ 610 20.8.2 处理队列化订单 612 20.9 小结 614 第21章 ADSI和AD介绍 615 21.1 ADSI的用途 615 21.2 必需的软件 616 21.3 AD的内部结构 617 21.3.1 目录里的对象和属性 617 21.3.2 对象的类 618 21.3.3 容器和叶 619 21.3.4 模式 619 21.3.5 继承 620 21.4 目录的特征 622 21.4.1 优化查找 622 21.4.2 查找功能 622 21.4.3 开放性 622 21.4.4 事务处理 622 21.4.5 复制 623 21.5 常见目录 623 21.5.1 Netscape目录服务器 623 21.5.2 IIS元数据库 623 21.5.3 Exchange Server目录和站点服务器 成员目录 623 21.5.4 Netware目录服务 623 21.5.5 WinNT 623 21.6 ADSI的适用范围 624 21.7 LDAP的适用范围 625 21.8 绑定到一个ADSI对象 626 21.8.1 ADSI对象和Directory对象 626 21.8.2 查看ADSI对象的属性 627 21.9 浏览目录:枚举容器的所有子对象 628 21.10 使用模式定义的属性 631 21.11 Get和GetEx 634 21.12 PropertyBrowseEx示例 634 21.13 AD与WinNT提供者比较 636 21.14 属性缓存 638 21.15 设置属性的值 639 21.16 目录的验证 639 21.17 查找 641 21.17.1 用以查找ADSI目录的命令字符串 644 21.17.2 查找过滤器 645 21.18 小结 646 第22章 ASP和用于NT服务器的CDO 647 22.1 CDO是什么 647 22.2 使用CDO的原因 647 22.2.1 NT服务器下的CDO 648 22.2.2 CDO与CDONTS的比较 648 22.2.3 CDO for Windows 2000 649 22.3 CDONTS库 649 22.3.1 引用类型库 650 22.3.2 NewMail对象 651 22.3.3 其他的CDONTS对象 658 22.3.4 设置SMTP Service 666 22.3.5 SMTP Service配置 667 22.4 在ASP应用程序中使用CDONTS 670 22.4.1 简单邮箱应用程序 671 22.4.2 Inbox应用程序 676 22.5 小结 683 第23章 ASP、CDO与Exchange Server 684 23.1 CDO库 684 23.1.1 通用/共享对象 684 23.1.2 Session对象 695 23.1.3 文件夹 697 23.1.4 地址列表 698 23.1.5 信息存储 699 23.1.6 消息 699 23.1.7 通用属性 704 23.2 邮件客户端应用程序 705 23.2.1 概述 705 23.2.2 服务器配置 705 23.2.3 类型库 707 23.2.4 Login.asp 707 23.2.5 FrameSet.asp 708 23.2.6 FolderList.asp 709 23.2.7 MessageList.asp 712 23.2.8 ViewMessage.asp 715 23.2.9 SendMessage.asp 719 23.2.10 SendMail.asp 722 23.2.11 Logout.asp 725 23.3 小结 725 第24章 服务器防护 726 24.1 安全的定义 726 24.1.1 Internet上的安全问题 726 24.1.2 安全策略 728 24.2 Windows 2000的防护 730 24.2.1 磁盘格式 730 24.2.2 Window 2000安全检查列表 730 24.2.3 防火墙和代理服务器 737 24.3 IIS 5.0的防护 739 24.3.1 IIS的安全配置 739 24.3.2 验证方法 742 24.4 SQL Server 7.0和ODBC的安全 744 24.4.1 保护sa帐号 744 24.4.2 为数据库访问建立替代帐号 744 24.5 建立自己的ASP安全系统 746 24.6 小结 755 第25章 证书的使用 756 25.1 安全性、一致性和可靠性 756 25.2 证书与证书机构 759 25.3 从证书机构获取证书 762 25.4 使用证书 768 25.4.1 使用服务器证书 768 25.4.2 使用个人证书 768 25.4.3 使用软件发行者证书 769 25.4.4 客户证书映射 769 25.4.5 证书的生存期 772 25.5 管理证书 772 25.5.1 证书存储 772 25.5.2 IIS证书管理 774 25.5.3 IE证书管理 775 25.5.4 Outlook Express证书管理 776 25.6 证书与ASP 776 25.7 成为自己的证书机构 777 25.7.1 Certificate Services 778 25.7.2 建立证书机构 779 25.7.3 管理证书机构 779 25.7.4 与证书机构的交互 780 25.8 小结 781 第26章 优化ASP的性能 782 26.1 衡量工作性能的标准 782 26.1.1 吞吐量 782 26.1.2 响应时间 783 26.1.3 衡量性能的其他指标 784 26.2 改善服务器的硬件性能 786 26.2.1 内存 786 26.2.2 硬盘 787 26.2.3 网络带宽 787 26.2.4 CPU 787 26.2.5 更多的服务器 787 26.3 性能的调整 787 26.3.1 解决性能问题 787 26.3.2 强度工具 788 26.3.3 脚本优化 789 26.3.4 会话和应用程序状态 789 26.3.5 安全套接字层 793 26.3.6 进程隔离 793 26.3.7 缓存技术和字典 794 26.3.8 数据库性能 795 26.3.9 真正充足的时间:MSMQ 796 26.3.10 脚本与组件的比较 796 26.3.11 多处理器的可扩展性 798 26.3.12 线程闸门 800 26.3.13 设置元数据库 801 26.3.14 性能计数器 802 26.4 各种小技巧 805 26.4.1 Stm的重命名技巧 805 26.4.2 避免嵌套的包含 806 26.4.3 不使用非脚本映射的文件扩展名 806 26.4.4 关闭脚本调试器 806 26.4.5 最小化脚本块转换 806 26.4.6 不要混用脚本引擎 807 26.4.7 在“费时”操作前使用Response.Is Client Connected 807 26.4.8 使用<OBJECT>标记 808 26.4.9 不使用OnStartPage和OnEndPage 808 26.4.10 发挥客户端的作用 808 26.5 小结 808 第27章 建立多服务器网站 810 27.1 多服务器网站 810 27.1.1 Web阵的不足 811 27.1.2 Web阵基础 812 27.2 负载平衡模式 813 27.2.1 DNS循环复用法 813 27.2.2 硬件负载平衡 814 27.2.3 TCP/IP Network Load Balancing 817 27.2.4 复合方式 819 27.2.5 High Availability Clustering Service 820 27.2.6 COM+Dynamic Load Balancing 822 27.3 状态管理 824 27.3.1 不管理状态 824 27.3.2 客户端存储 824 27.3.3 亲和性 824 27.3.4 在一个中心服务器上存储状态 826 27.4 安全 826 27.5 小结 827 第28章 XML驱动的报纸实例 829 28.1 报纸的剖析 829 28.1.1 作者写稿 831 28.1.2 编辑修改 832 28.1.3 读者阅读 834 28.1.4 结构要求 835 28.2 网站的大脑:settings.xml 835 28.2.1 元素 836 28.2.2 元素 836 28.2.3 元素 836 28.2.4 准备global.asa 837 28.2.5 插入导航 838 28.2.6 元素 840 28.3 网站的躯干:headlines.asp 841 28.3.1 ShowHeadlines过程 842 28.3.2 ShowBlurbs过程 843 28.3.3 ShowBriefs过程 844 28.3.4 ShowStory过程 846 28.3.5 使用ShowStory过程 849 28.3.6 主页 852 28.4 管理工具 854 28.4.1 setting_stories.asp 854 28.4.2 setting_glossary.asp 858 28.4.3 关于admin文件夹的其他内容 861 28.5 系统集成 861 28.6 小结 864 附录A ASP 3.0的对象模型 865 附录B 脚本运行期库对象 871 附录C 微软服务器组件 877 附录D 错误代码 881 附录E ADO 2.5对象模型 893 附录F ADO 2.5常量 902 附录G 有用的资料 920 附录H p2p.wrox.com 926
考试系统论文 摘要 随着计算机技术的普及和提高,计算机等级考试成为热门,等级考试的目的在于适应社会主义市场经济建设的需要,一方面是为了促进计算机知识的普及和计算机应用技术的推广,另一方面是为劳动力市场服务,即为劳动人员提供其计算机应用知识与能力的证实,为用人部门录用和考核工作人员提供一个统一、客观、公正的评价标准. 该系统用于用户登录、参加等级考试以及治理员进行试题录入、修改、删除、成绩查询、治理用户的ASP应用程序。它应该具有开放性、方便性和灵活性。治理员不仅可以轻松地向题库添加、修改和查询试题,而且还可以自动新增考试等级并建立相应的数据;它还答应用户根据自己的需求,选取考试等级。考生进行有效的身份验证登录后,选择考试等级,并要求在规定的时间内进行答题,当达到规定的时间后,系统将自动予以提示。一旦考生做完交卷后便能立即看到自己的考试成绩,并且其分数将被记入库中以供审核和查阅;另外,还可完全由计算机自动灵活、随机的抽取试题库中的各类试题组成各种形式的试卷,其内容会随着库中试题的改变而改变,而且,不同的考生生成的试题是不同的。 系统选用的开发软件是ASP,后台数据库为ACCESS2000 系统的开发用结构化设计思想。本文介绍了考试系统的开发初衷和背景,系统的开发工具,结构化开发的具体步骤,其中包括实体-联系模型,数据流图,功能结构图等 关键字:考试试卷自动系统ASPvbscriptaccessresponserequest, Summary Alongwiththefastdevelopmentincomputertechnology,wehavegottenbigprogressinschoolscienceandinformationmanagement.Soitneedsequaldevelopmentineverypart.Theschoolwillbebuildinganinformationmanagementandeducationalplatfromhardwareandsoftwaretwosides.Idevelopedthissystemisinordertoreducetheteacherstesting,enhancethestudentssecrecy.Itcansavemorepeoplemoneyandtimethantraditionmethods. Thesystemisdedicatedtousersdownload,onlineexaminationandmanagersparticipateintheexaminationincluded,modify,delete,performanceenquiries,managementuserASPapplications.Itshouldbeopen,convenienceandflexibility.Managersnotonlytothedatabankcaneasilyadd,modifyandinquiryquestions,butalsocanautomaticallycreatenewexaminationgradingandthecorrespondingdata;Italsoallowsusersonthebasisoftheirownneeds,selectingexaminationgrades.Candidatesforeffectiveidentificationandrecorded,theselectionexaminationgrading,andrequestsinthetimeallowed,whenaprescribedtime,thesystemwillautomaticallybemade.Oncecandidateswillbeabletocompletehomeworkimmediatelyafterseeingtheirexaminationresultsandtheirscoreswillberecordedandputinstorage,forauditandinspection;Inaddition,thecomputercouldbecompletelyautomatedflexible,randomsamplesofthevarioustypesoftestquestionsfortheformationofvariousformsofpaper,itscontentwillchangewiththechangeintheexamination,but,differentcandidatesgeneratedquestionsaredifferent. ThesystemchoosesthesoftwareofdevelopmentthatuseisASP,andACCESS2000. Thesystemdevelopmentsadoptideaofconstructiondesigning.Thesystemmanualintroducedtheoriginalintentionandbackgroundofthisexaminationsystem,thetoolofdevelopmentofthesystem,thedetailsprocessofconstructiondevelopment,itcontenttheentity-model,thedatastreamchart,functionandconfigurationchart,andothernecessarychartexplanations. Keywords:testpaperautosystemASPvbscriptaccessresponserequest, 前言 计算机技术没有应用到考试上时,组织一次考试至少要经过五步,人工出题、考生考试、人工阅卷、成绩评估和试卷分析。教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常轻易出错的事情,明显的传统的考试方式已经不能适应现代考试的需要。随着计算机应用的迅猛发展,应用不断扩大,如教学和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。人们迫切要求利用这些技术来进行等级考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观,更加激发学生的学习爱好。例如目前许多国际闻名的计算机公司所举办的各种认证考试绝大部分采用这种方式。 等级考试是现阶段研究开发的一个热点。它是建立在国际互联网上的应用系统,客户端的配置可以极为简单, 使考试不受地域的局限。一个完备的等级考试系统可以使用户在网上学习过后及时检验自己的学习效果, 已发现自己的不足,使得学习效率得到很大提高。等级考试系统中题目的生成、试卷的提交、成绩的批阅等都可以在 上自动完成。只要形成一套成熟的题库就可以实现考试的自动化。这样一来,教师所要做的只是精心设计题目、维护题库, 而不是组织考试,从而大大减轻了教师的负担,这表明其经济性是相当可观的。为了适应新形势的发展, 我进行了这一系统的初步设计工作,也可以说是做一个初步的探索,希望它能够在各类考试中发挥高效、 便捷的作用,把老师从繁重的工作中解脱出来! 目前,应用软件运行的模式主要有二类:Client/server模式,Browser/Web模式。前者主要的缺点是维护、 升级较麻烦,后者是近几年伴随Internet迅速发展起来的一种技术,它与客户/服务器方式类似, 客户端是一个标准的浏览器,服务器端是WebServer,而WebServer与数据库和应用服务器的紧密结合, 使得这种模式的应用范围不断扩大,它已不仅仅用于网上查询,有很多部门的业务系统、 企业的MIS系统纷纷采用这种模式,它的主要优点是便于扩充应用、升级维护简便。 另外,考试系统的软件也必将不断的更新;同时软件产品本身就要经过一个不断自我完善的过程。 基于上述考虑,用Browser/Web模式来设计考试系统比较合适,服务器端我们采用Access数据库系统和 ASP组件来构成考试的应用服务系统;客户端采用浏览器来完成考试全过程,同时可进行远程系统维护和治理。 利用和数据库技术,结合目前硬件价格普遍下跌与宽带网大力建设的有利优势,应用ActiveServerPage技术,我开发了基于B/S模式多用户等级考试系统这一程序。它运用方便、操作简单,效率很高。现阶段虽只实现了试卷的客观题部分,但已具有用户注册、多用户同时等级考试、动态随机出题、时间控制、自动判卷,试题录入、修改题库、用户治理、科目治理、治理员治理、分数治理等重要功能,也就是说实现了真正的无纸化考试,满足任何授权的考生随时随地考试并迅速获得成绩,同时也大大减轻了教师出题、出题和判卷等繁重的工作量。 第一章 系统设计相关原理 该在线考试系统主要采用ASP、HTML、Access数据库、VBScript、SQL等技术和工具〖本文来自论文路上,Www.Lw63.Com,专业毕业设计〗整体设计遵循软件工程的方法,经过需求分析、总体设计、文档和代码的编制、模块测试和系统实现几个阶段。下面就对这几种技术和方法做一个概述。 2.统一的语言 SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及许多其它类型的终端用户。基本的SQL 命令只需很少时间就能学会,最高级的命令在几天内便可掌握。 SQL为许多任务提供了命令,包括: ☆查询数据 ☆在表中插入、修改和删除记录 ☆建立、修改和删除数据对象 ☆控制对数据和数据对象的存取 ☆保证数据库一致性和完整性 以前的数据库管理系统为上述各类操作提供单独的语言,而SQL将全部任务统一在一种语言中。 3.是所有关系数据库的公共语言 由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。所有用SQL编写的程序都是可以移植的。SQL是PostgreSQL(和大多数其它关系型数据库)用做查询语言的语言。它是可以移植的,并且容易学习使用。但是所有SQL语句都必须由数据库服务器独立地执行。这就意味着客户端应用必须把每条查询发送到数据库服务器,等待它处理这个查询,接收结果,做一些运算,然后给服务器发送另外一条查询。所有这些东西都会产生进程间通讯,并且如果客户端在另外一台机器上甚至还会导致网络开销。如果使用了 PL/pgSQL,那么可以把一块运算和一系列查询在数据库服务器里面组成一个块,这样就拥有了过程语言的力量并且简化SQL的使用,因而节约了大量的时间,因为用不着付出客户端/服务器通讯的过热。通过使用PL/pgSQL,应用可以获得可观的性能提升。 2.2 系统应该具备的基本功能 ☆用户注册:用户可以进行注册,然后登录。 ☆用户信息的管理:管理员可以增删用户 ☆试题模型设置:设置各科目试题的每种题型的数量和分值。 ☆试题库管理:分科目,对单选、多选两种题型试题库的管理,使试题的增删、编辑更为简便。 ☆试卷生成:可以指定试卷的各题型的数量,从试题库里随机抽取试题生成一份原始试卷。 ☆在线考试:系统严格控制整个考试过程,实行时间的监控与权限的控制,考生需要在限定的考试时间内交卷。 ☆计算机自动阅卷:本系统只考虑客观题,要求计算机能自动阅卷,然后马上显示出考生分数。 ☆成绩查阅:考生考完以后,管理员应该能对所有纪录进行查询,并应该可以删除指定纪录。 除了实现上述功能以外,在线考试系统还应该具有友好、简洁的界面,安全性要高,稳定性要强,能够满足100人以上同时及进行在线考试。 3.3.3 用户、管理员权限 ☆管理员:在此系统中可以由若干个管理员,即系统管理员。他们具有一般用户所没有的权限,即具有管理用户、试题以及试卷等内容的权力。它不需注册,在数据库有一个表来存放相关信息,可由以存在的管理员添加或删除管理员。 ☆一般用户:主要是指学校的学生和企事业单位的培训对象等。 3.3.4 功能模块详细设计 下面,对各个功能模块分别进行详细讨论,具体情况见系统源程序。 3.3.4.1 管理模块 管理员可以向题库中添加各种类型且符合要求的试题,也可以对它们进行修改和删除。同时,管理员也能对科目、用户、考试记录等数据进行管理。 1. 试题管理 (1)试题录入 首先,用户选择试题所属科目。若菜单中没有该科目,则可以新增一个。返回、刷新一次页面,即可看到新增的科目名称。而且,在本系统中其它需要选择科目的地方也会自动更新。其次,每道试题有类型、试题内容与选项和答案等栏目。管理员输入完以后,即可看到预览效果。如果输入不合法,或者该科题库中已有该试题编号和内容等,则系统给出相应的提示或警告,以待更正。 (2)试题修改 管理员还可以对试题进行修改。不过,对于各表中的主键不用修改,避免了造成系统中的数据混乱,或者覆盖其它有用数据的现象。如果用户执行了非法操作,则必须重新操作。 (3)试题删除 管理员可以删除不再需要的试题。 2. 科目管理 (1)添加科目 其基本信息有科目名称、题型、题量和考试总时间等,对于用户输入的不符合系统要求的数据,系统仍旧给出提示或警告。 (2)科目删除 管理员可以删除不再需要的科目。 3.用户管理 管理员可以通过管理界面添加或删除用户。 4.管理管理员 管理员可以通过管理界面添加新管理员或删除原有管理员。 5.考试记录管理 系统中的管理员可以查询考试记录,也可以删除考试纪录。 3.3.4.2在线考试模块 进入在线考场是本系统最重要的部分之一。因为一个系统如果涉及到现实的话,就必须考虑得十分周到、完善。考生登录后,只要选择考试科目以后,就可以调出试卷进行在线考试。为了实现动态随机不重复的抽取试题,需要在选题过程中每选出一题,就要在试题库中作相应的标志,以便下次不会重复取出此题。试卷出来后要对试题库中的标志位复原。这样就会使每个考生的试卷都不同。考生的其答题信息通过单、复选按钮选择答案来反映。考试结束采取自主交卷和到了规定的时间自动题示有机结合的方式办法予以实现。 3.3.4.2用户注册模块 该模块的功能是实现用户远程注册。用户输入想要注册的用户名和密码,提交之后由系统判断该用户是否已经存在,如果存在,就给出相应信息,如果不存在,就把用户输入的用户名和密码写到数据库中,完成注册。 该文件就是考试界面,实现真正的动态随机选题,并对每个考生的考试时间进行监控,到结束时间后自动给出提示。 该文件的总体构架是使用了if else 语句进行了一个选择,刚进入该页面submit1得值肯定不等于“开始考试”,所以先显示出“开始考试”的按钮。按下以后,首先把当前时间以分种为单位存储在session的变量starttime中。然后进入随机抽取试题部分,单选题和多选题的抽取很相似,只不过一个是单选按钮,一个是多选按钮罢了。这里只解释单选题的部分。 strid1=""是定义了一个字符串变量,并先赋值为空。 Randomize是产生随机种子,在使用rnd()函数之前一定要先用Randomize产生随机种子才能实现其产生0~1之间随机数的功能。 for i=1 to session("singlenumber")直到next是选择singlenumber(代表某科目的单选题数量)个单选题。 下面的代码实现了从数据库中随机不重复的选题: set rs=server.createobject("adodb.recordset") sql="select * from question where subjectname='"&session("selectsubjectname") & "'and type='单选题' and haveselect=0 " rs.open sql,conn,3,2 count=rs.recordcount temp=fix(count*rnd(10)) rs.move temp rs("haveselect")=1 rs.update strid1=strid1 & rs("ID") & "," 其中haveselect标志某题是否已经被选过。 Count变量用来存放所有未被选过的单选题的总数。 temp变量用来存放0~Count之间的随机整数值。 rs.move temp是将当前记录移到第temp条纪录。 rs("haveselect")=1是将当前选出的纪录的标志位设为1,然后用rs.update把数据库中的相应标志位改为1。 strid1=strid1 & rs("ID") & ","是将所有选出的试题的id号用逗号分割后存储在strid1一个变量中,以方便的把所有选出的试题的id号传到result.Asp文件中,这也是本设计的一个独特的地方。需要说明的是strid1变量的最后是一个逗号,在下一个文件中会详细说明如何进行处理。 在线考试系统的实现 摘要:人类已经步入了崭新的21世纪,以Internet技术为代表的信息技术为人类创造了一种新的不受地域、时间和计算机本身的约束的信息交流、共享和协作方式。21世纪是信息化的社会,数据信息应用已进入大规模的服务阶段。考试作为最直接的体现信息化社会中人们的知识水平的一种方式,是目前使用最为广泛的形式之一,传统的考试从出题、组卷、印刷,到试卷的分发、答题、收卷、再到判卷、公布成绩,整个过程都需要人工参与,周期长,工作量大,容易出错,还要有适当的保密工作,使的整个考试的成本较大。所以,实现无纸化、网络化、自动化的计算机考试系统,具有深远的现实意义和使用价值。 本系统采用B/S模式,采用现在使用广泛的ASP语言和对数据文件安全保护性极好的SQL Server2000设计开发出的一个实现在线考试的动态网站—基于Web的考试管理系统,也就是在线考试系统。该系统基本上具备一个网上数据传递的功能,具体分为用户层和管理层两大模块,用户层模块实现用户的考试、查询功能;管理实现题库的管理、试卷的生成、查询、修改、删除等功能。系统采用三层结构,统一的管理题库,自动组卷,自动判卷,极大的节省了人力、物力,提高了效率。 本文主要介绍了本课题的开发背景,所要完成的功能和开发的过程等,并给出了在开发过程中的一些经验体会。 关键词:B/S模式; WEB; 用户层; 管理层 Online Examination System To Achieve Abstract:We have got into the completely new 21Century, and as the typical of information technology, the internet creates a new way of information exchanged and shared for humans which isn’t restricted by the district, time, and computer itself. The 21-century is an informational society, in which the data information is exerted for a large service scale. The examination, as a way of directly embodying the knowledge of humans in the informational society, is one of the most common forms in present. However, humans have to participate into the whole process of traditional examination, whatever the stages of arranging examination are, such as, collecting the questions, printing, sending, and turning in paper, correcting answers or declaring the results, so that all these stages cause the long cycle, heavy workload, and more mistakes in the course of making an examination. Additionally, we also sometimes should pay attention to the secrecy. The above factors are enabling to raise the examination cost. So, to be the paperless, internalization, and automatic computer examination systems have confounded signification and valuable. Employing the B/S model, ASP language and the dynamic website developed by the SQL Server2000 and well protecting the data document---- on the basis of Web examination system, actually, the system has a basic foundation of sending internet dates, which is divided into two models, that is, the Consumer and the Administer. The Consumer is to be the foundation of the registration and landing, examination and inquired; the Administer is to be the foundation of the paper management, the paper formation, inquiry, amendment, and delectation. The system has three structures which are separately the unity of the paper management, automatic formation, and automatic correction, so it saves the labour, worthy, and improve the work efficiency. The paper mainly introduces the developing background, the foundations and the developing process, Meanwhile, we are sharing the experience from the developing. key words:B/S model ; WEB ; the costume; the domination 目 录 前言 1 1 在线考试系统的现状分析 2 2 开发工具简介和数据库技术 3 2.1 开发工具的选择 3 2.2 ASP简介 3 2.2.1 ASP概述 3 2.2.2 ASP的特点 3 2.3 SQL Server 2000简介 4 2.3.1 SQL Server概述 4 2.3.2 SQL Server的运行环境 7 2.3.3 SQL Server 安全性 7 2.3.4 SQL Server的特性 7 2.4 用来操纵数据的SQL命令 8 3 系统总体设计 9 3.1 系统需求分析 9 3.1.1 用户考试查询功能 10 3.1.2 系统管理员管理功能 11 3.2 系统功能模块设计 12 3.2.1 前台考试系统 12 3.2.2 后台管理员模块 12 3.3系统结构图 13 3.3.1 系统结构图 13 3.4实体关系图(ER图) 15 3.4.1 用户(学生或管理员)关系 15 3.4.2 试卷关系 15 3.4.3 题库关系 15 3.4.4考试过用户关系 16 3.4.5用户答题关系 16 3.5数据库的设计 17 3.5.1 数据库需求分析 17 3.5.2 数据库逻辑设计 17 3.5.3 数据库连接文件 19 4 系统功能模块 20 4.1前台考试模块 20 4.1.1 考试用户登陆模块 20 4.1.2 验证用户模块 21 4.1.3 考试开始模块 22 4.1.4 考试结束模块 26 4.2后台管理员模块 28 4.2.1 管理员登陆模块 29 4.2.2 试题创建模块 30 4.2.3 题库管理模块 31 4.2.4 试卷管理模块 34 4.2.5 考生管理模块 36 4.2.6 成绩统计模块 38 5 结束语 43
AspJpeg  1、AspJpeg是一款功能强大的基于Microsoft IIS环境的图片处理组件,网络上对其进行详细和深入介绍的中文文章并不多,即使有一般也只是牵涉到图片缩略图和图片水印,这与其为英文版本有着密切的关系。   AspJpeg可以使用很少的代码在您的ASP/ASP.Net应用程序上动态的创建高质量的缩略图象,支持的图象格式有:JPEG, GIF, BMP, TIFF, PNG。   AspJpeg主要可以做到:生成缩略图片、生成水印图片、图片合并、图片切割、数据库支持、安全码技术   ASPJPEG是一款功能相当强大的图象处理组件,用它可以轻松地做出图片的缩略图和为图片加上水印功能。   安装SN:09268-26217-40710   2、AspJpeg功能摘要   支持JPEG, GIF, BMP, TIFF 和 PNG 格式图片. 输出格式始终为 JPEG   源图片可以来源于磁盘、内存、或者记录集(数据库)   缩略图片可以保存到磁盘、内存、或者HTTP流   支持三种更改大小方式: nearest-neighbor, bilinear, and bicubic.   可以在图片之上添加图片或者文字.   支持画中画   支持复制,反转,旋转,锐化,灰度调节.   可以调节压缩比率,以得到最佳输出效果和大小.   从Jpeg图片中抽取EXIF 和 IPTC数据.   CMYK-RGB转换   Read/write access to individual pixels of an image. (从图象中对任意象素进行读/写存取。)   3、AspJpeg系统需求   Windows 95/98/NT/2000/XP/2003, and   IIS 4.0+ and ASP/ASP.NET, or   Visual Basic 5.0+, or   Visual C++ 5.0+, or   any development environment supporting COM.   4、AspJpeg安装   全新安装:   在AspJpeg安装过程中输入序列号即可,如果安装位置磁盘格式为NTFS,则可能出现访问权限问题,需手工设置安装目录对Everyone有访问权限。   更新安装:   如果之前有装过其它版本的AspJpeg组件,则需要先卸载原来的组件,再进行新版本的安装。   先停止IIS   Net Stop iisadmin /y   卸载旧版组件   regsvr32 /u Path/aspjpeg.dl(Path为安装路径)   重启IIS   Net Start w3svc   然后再进行全新安装或复制AspJpeg.dll文件到安装目录进行手工安装:   regsvr32 Path/aspjpeg.dll(Path为安装路径)   如果在正常安装过程中没有输入序列号或手工安装则必须在注册表中加入以下项,为方便起见您可以直接将以下代码保存为.reg文档并导入注册表:   Windows Registry Editor Version 5.00   [HKEY_LOCAL_MACHINE\SOFTWARE\Persits Software\AspUpload3\RegKey]   @="21764-40765-60456"   5、如何创建一个AspJpeg实例?   Set Jpeg = Server.CreateObject("Persits.Jpeg")   6、如何查看到期时间(是否注册成功)?   Set Jpeg = Server.CreateObject("Persits.Jpeg")   Response.Write Jpeg.Expires   注册成功则到期时间为:9999-9-9   否则为:安装日期加1个月期限   7、如何用AspJpeg组件生成图片缩略图?   <%   Set Jpeg = Server.CreateObject("Persits.Jpeg") '创建实例   Path = Server.MapPath("../images/apple.jpg") '处理图片路径   Jpeg.Open Path '打开图片   '调整宽度和高度为原来的50%   Jpeg.Width = Jpeg.OriginalWidth / 2   Jpeg.Height = Jpeg.OriginalHeight / 2   Jpeg.Save Server.MapPath("apple_small.jpg") '保存图片到磁盘   Jpeg.Close:Set Jpeg = Nothing   %>   8、如何用AspJpeg组件生成图片水印?   <%   Set Jpeg = Server.CreateObject("Persits.Jpeg")   Jpeg.Open Server.MapPath("images/dodge_viper.jpg")   开始写文字   Jpeg.Canvas.Font.Color = &000000'' red 颜色   Jpeg.Canvas.Font.Family = "Courier New" 字体   Jpeg.Canvas.Font.Bold = True 是否加粗   Jpeg.Canvas.Print 10, 10, "Copyright (c) XYZ, Inc."   打印坐标x 打印坐标y 需要打印的字符   以下是对图片进行边框处理   Jpeg.Canvas.Pen.Color = &H000000'' black 颜色   Jpeg.Canvas.Pen.Width = 2 画笔宽度   Jpeg.Canvas.Brush.Solid = False 是否加粗处理   Jpeg.Canvas.Bar left, top, right, bottom ' 左,上,右,下   Jpeg.Save Server.MapPath("images/dodge_viper_framed.jpg") 保存   %>   9、如何用AspJpeg组件进行图片合并?   AspJpeg 1.3+ enables you to place images on top of each other via the method DrawImage. To use this method, you must create two instances of the AspJpeg objects and populate both of them with images via calls to Open (or OpenBinary). When calling Canvas.DrawImage, the 2nd instance of AspJpeg is passed as an argument to this method, along with the X and Y offsets (in pixels):   使用该方法,您必需创建两个AspJpeg实例对象   <%   Set Jpeg1 = Server.CreateObject("Persits.Jpeg")   Set Jpeg2 = Server.CreateObject("Persits.Jpeg")   Jpeg1.Open Server.MapPath("t.jpg")   Jpeg2.Open Server.MapPath("t1.jpg")   Jpeg1.Canvas.DrawImage 10, 10, Jpeg2 ' optional arguments omitted   jpeg1.save Server.mappath("tt.jpg")   %>   10、如何用AspJpeg组件进行图片切割?   AspJpeg 1.1+ is also capable of cutting off edges from, or cropping, the resultant thumbnails via the method Crop(x0, y0, x1, y1). The size of the cropped image is specified by the coordinates of the upper-left and lower-right corners within the resultant thumbnail, not the original large image.   <%   Set Jpeg = Server.CreateObject("Persits.Jpeg")   Jpeg.Open Server.MapPath("t.jpg")   jpeg.Crop 20, 30, jpeg.Width - 20, jpeg.Height - 10   jpeg.save Server.mappath("tt.jpg")   Response.write("")   %>   11、如何用AspJpeg组件创建安全码?   创建安全码原理上和创建水印差不多。   <%   function make_randomize(max_len,w_n) 'max_len 生成长度,w_n:0 可能包含字母,1:只为数字   randomize   for intcounter=1 to max_len   whatnext=int((1-0+1)*rnd+w_n)   if whatnext=0 then   upper=122   lower=97   else   upper=57   lower=48   end if   strnewpass=strnewpass & chr(int((upper-lower+1)*rnd)+lower)   next   make_randomize=strnewpass   end function   '生成安全码的图片。   random_num=make_randomize(4,1) ''生成4位数字的安全码   session("random_num")=random_num '为么调用session,没有session的安全码是完全没有意义的。呵呵 .   Set Jpeg = Server.CreateObject("Persits.Jpeg") '调用组件   Jpeg.Open Server.MapPath("t.jpg") '打开准备的图片   Jpeg.Canvas.Font.Color = &HFFFFFF   Jpeg.Canvas.Font.Family = "Arial Black"   Jpeg.Canvas.Font.Bold = false   Jpeg.Canvas.PrintText 0, -2, random_num   jpeg.save Server.MapPath("tt.jpg") '保存   %>      12、如何让AspJpeg组件支援数据库?   图片存进数据库只能以二进制数据保存,这里即利用AspJpeg的Binary方法,下面以两个AspJpeg用户手册上的代码为例,具体请参考AspJpeg用户手册:   Opening Images from Memory   <% ' Using ADO, open database with an image blob   strConnect = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../db/aspjpeg.mdb")   Set rs = Server.CreateObject("adodb.recordset")   SQL = "select image_blob from images2 where id = " & Request("id")   rs.Open SQL, strConnect, 1, 3   Set Jpeg = Server.CreateObject("Persits.Jpeg")   ' Open image directly from recordset   Jpeg.OpenBinary rs("image_blob").Value   ' Resize   jpeg.Width = Request("Width")   ' Set new height, preserve original aspect ratio   jpeg.Height = jpeg.OriginalHeight * jpeg.Width / jpeg.OriginalWidth   Jpeg.SendBinary   rs.Close   %>   Output to Memory   <%   ...   Set rs = Server.CreateObject("adodb.recordset")   rs.Open "images", strConnect, 1, 3   rs.AddNew   rs("image_blob").Value = Jpeg.Binary   rs.Update   ...   %>   更多方法介绍:   Canvas.Line(Left, Top, Right, Bottom)   画一条直线   Canvas.Ellipse(Left, Top, Right, Bottom)   画出一个椭圆   Canvas.Circle(X, Y, Radius)   画出一个圆   Canvas.Bar(Left, Top, Right, Bottom)   画出一个长方形,上面有代码介绍了   Canvas.Font.ShadowColor   文字阴影颜色   Canvas.Font.ShadowXOffset As Long   阴影X坐标设定   Canvas.Font.ShadowYOffset As Long   Y坐标设定   Canvas.Font.BkMode As String   文字背景

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧