QC之旅途笔记 (转)[@more@]

QC之旅途笔记

XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />

Revision History:

版本

创建时间

创建人

备注

2003-7-8

郑 昀

第一稿

Implementation SCOpe:

本文档将说明在使用Microsoft Message Queue的Queued Component技术时着实领教了Microsoft的乖张。

继续阅读之前,我们假设您熟悉以下知识:

MSMQ

COM+

QC

iis 5.0

乖张一

MSMQ的队列组件如何使用,我就不多说,可以参考《.NET/develop/read_article.ASP?id=18692" target=_blank>[MQ]QueuedComponent设计时了解事项[MQ]》。

发生了什么?

我的测试程序调用队列组件一次两次,尚可以正常运作。

但是,如果稍微调用快了一点,于是就出现这个错误。最糟糕的是,这个队列组件所在的COM+应用停止了响应!!

让我们看看 microsoft.public.* 新闻组上都没有人能回答的这个怪异的错误日志:

事件类型: 错误
事件来源: COM+
事件种类: 管理
事件 ID: 4210
描述:
因为发生意外错误,COM+ 服务无法处理一个组件的  IsCallerInRole 调用。返回到调用者的意外错误代码显示如下。
Recorder untrusted服务器应用程序 ID: {8C12B987-454E-4FD0-81F7-9DC9CA48BB15}服务器应用程序名称: Tomo_Trimmer_QC
错误代码= 0x80070005 : 拒绝访问。
COM+ 服务内部信息:
文件: .player.cpp, 行: 737

我直接厥了过去,心想自己选择QueuedComponent是不是有眼无珠鼠目寸光。

解决这个问题,需要完全去除安全层,转到COM+应用的属性页,并在Security属性标签上单击,设置Authentication level for calls为None。

乖张二

产品上线了,测试人员点击了ASP页面,第一次OKAY,过了,第二次…….竟然IIS瘫了?!

我已经不省人事了

这时候的COM+应用已经停止响应,无法关闭和启动了。可我明明已经把COM+应用的身份验证级别设置为“无”了。而且,我自己的测试程序都可以正常运行,并没有任何异样?!

难道和IIS的ASP线程运行身份有关系?

IIS的应用程序级别为“中”的虚拟目录下的ASP页面调用,却没有看到我们的组件运行的迹象,而且每一次都会得到下面的错误。

这个错误日志已经几近邪恶:

事件类型: 错误
事件来源: COM+
事件种类: 管理
事件 ID: 4230
描述:
COM+ 内部错误。请与 “Microsoft 产品支持服务部门联系来报告此错误。宣告失败:
hr == S_OK服务器应用程序 ID: {0DE91329-BDFB-4E44-9E82-A22F6D65CBA4}服务器应用程序名称: Tomo_Trimmer
该错误的严重性已导致进程终止。
错误代码= 0x8000ffff : 灾难性故障
COM+ 服务内部信息:
文件: .assoc.cpp, 行: 528

真是恶毒啊!

做试验:

试验一:

将两个COM+应用的身份验证级别设置用了这样的组合:

QCCaller所在的:身份验证级别(),模拟级(匿名)

QC所在的:身份验证级别(),模拟级(匿名)

不行!

 

试验2

将两个COM+应用的身份验证级别设置用了这样的组合:

QCCaller所在的:身份验证级别(),模拟级(模仿)

QC所在的:身份验证级别(),模拟级(匿名)

也不行!

解决办法有两个:

找到两个解决办法就是,

一:把IIS的虚拟目录的应用程序保护级别设置为“低(IIS进程)”。这样就可以正常启动了,而且不再报告“灾难性故障”。

二:将队列组件所在的COM+应用的身份验证级别设置用了这样的组合:

QC所在的:身份验证级别(无),模拟级(模仿)。

如此,则无往而不胜,与IIS的应用程序保护级别设置无关,与QCCaller所在的COM+应用的设置也没有关系。

可以正常启动了!

最后,我当然在生产环境采用了第二种方法。

总结:

A novice asked the master: "I have a program that sometimes runs and sometimes aborts. I have followed the rules of programming, yet I am totally baffled. What is the reason for this?"
一个初学者问大师:“我的一个程序有时正常有时不正常。我已经完全遵循编程的规则,而且我完全被它弄糊涂了,到底是什么原因会导致这样呢?”
The master replied: "You are confused because you do not understand the Tao. Only a fool expects rational behavior from his fellow humans. Why do you expect it from a machine that humans have constructed? Computers simulate deteRminism; only the Tao is perfect.
大师说:“你困惑是因为你不了解道。只有傻瓜才会相信只要遵循别人所说就能得到想当然的结果。为什么你要从一个人类自己构造的机器中去得到想当然的结果呢?计算机只是决定论的产物;只有道才是唯一完美的。

The rules of programming are transitory; only the Tao is eternal. Therefore you must contemplate the Tao before you receive enlightenment."
任何编程的规则都只适合于特定的情况,只有道才是永恒不变的。所以在你受到指引之前要先去思考道。”

"But how will I know when I have received enlightenment?" asked the novice.
“但是我怎么知道我何时受到指引呢?”

"Your program will then run correctly," replied the master.
“当你的程序正确运行时”。大师说。

Disclaimers:

本文档所包含的信息代表了在发布之日,zhengyun对所讨论问题的当前看法。本文档不应理解为zhengyun一方的承诺,zhengyun不保证所给信息在发布之日以后的准确性。

本文档仅供参考。

用户必须遵守所有适用的版权法。在不对版权法所规定的权利加以限制的情况下,如未得到 zhengyunCSDN.Net明确的书面许可,不得出于任何目的、以任何形式或手段(电子的、机械的、影印、录制等等)复制、传播本文的任何部分,也不得将其存储或引入到检索系统中。

Written by zhengyun (at) tomosoft.com

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10748419/viewspace-958860/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10748419/viewspace-958860/

QC之旅途笔记 (转)相关推荐

  1. GWAS学习笔记(一):质量控制(QC)

    本系列文章采用的数据集与代码来自https://github.com/MareesAT/GWA_tutorial. 该教程获得了许多人的推荐,是一份很详细的step-by-step guide. 本文 ...

  2. PMP笔记-区分质量保障(QA)和质量控制(QC)

    质量保证和质量控制是比较容易混淆的一组概念.实施质量保证是执行过程组的一个过程,而质量控制是监控过程组的一个过程. 质量保证的定义是:审计质量要求和质量控制测量结果,确保采用合理的质量标准和操作性定义 ...

  3. 软件测试工具笔记:QC安装步骤

    安装前提条件: 1.需要windows 2003或者xp系统 这里采用vmware虚拟机安装windows sever 2003(方法见我另一篇博客) 2.IE浏览器版本需要在IE7以下 这里安装完成 ...

  4. linux系统管理学习笔记之三----软件的安装

    linux系统管理学习笔记之三----软件的安装 2009-12-29 19:10:02 标签:linux 系统管理 [推送到技术圈] 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 ...

  5. 软件质量保证与测试笔记——江湖救急版

    软件质量保证与测试笔记--江湖救急版 Powered by DZY 以下部分图片来源于老师课件,仅供学习交流使用,侵权致删! Ch1 软件质量与测试概念 软件质量的定义 软件质量是"反映实体 ...

  6. scrapy笔记——python的时间转换

    1 import datetime 2 GMT_FORMAT = '%M %H %d %m %w' 3 datetime.datetime.utcnow().strftime(GMT_FORMAT) ...

  7. Spring.NET学习笔记——前言

    Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序.它提供了很多方面的功能,比如依赖注入.面向方面编程(AOP).数据访问抽象及ASP.NET扩展等等.Sprin ...

  8. 哈佛大学单细胞课程|笔记汇总 (三)

    生物信息学习的正确姿势 NGS系列文章包括NGS基础.在线绘图.转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这).ChIP-seq分析 (ChIP-seq基本分析流程).单细胞 ...

  9. 《MFC游戏开发》笔记七 游戏特效的实现(一):背景滚动

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9344721 作者:七十一雾央 新浪微博:http:// ...

最新文章

  1. python 推迟运行_一文看懂Python的time模块sleep()方法和strftime()方法
  2. StartSSL申请全过程 让网站拥有免费SSL证书
  3. 浅谈WeakHashMap
  4. 戴尔电脑 linux ssh,使用SSH管理Dell iDRAC远程控制卡
  5. git add . 出现错误 The file will have its original line endings in your working directory. 解决方案...
  6. python 循环加速_CPU靠边站!使用cuDF在GPU加速Pandas
  7. java list移除符合条件的元素_从List中移除指定 List 中包含的其所有元素(可选操作)。...
  8. 使用Fsharp 探索 Dotnet 平台
  9. 美丽联合与腾讯云签署战略协议 全面借助腾讯云打造智慧时尚电商平台
  10. LeetCode Week 4:第 31 ~ 40 题
  11. 浅谈Python-IO多路复用(select、poll、epoll模式)
  12. java file 实例_Java File类的详解及简单实例
  13. NSight统计数据的颜色,缩写意义是什么?来自NV Jeff Kiel 比较官方的解释!
  14. javascript实现黑客帝国代码雨特效背景效果 让你装逼无限
  15. IDA7.5 无法打开解决方法
  16. 基于C语言的移位密码和仿射密码
  17. liunx命令大全建议粘贴到word文档可方便查询
  18. 【CCIE考试流程、CCIE考试费用及CCIE考试地点】
  19. 送给想进大厂的程序员们
  20. No input file specified. Nginx PHP

热门文章

  1. 国内DP厂家的相关资料信息
  2. 中国软件欧美出口工程名单:金蝶等入选第一梯队
  3. Android模拟器打不开或者模拟器找不到
  4. ip子网划分计算题举例说明
  5. 开篇:解决IE9字体模糊的问题(又称无法关闭ClearType)
  6. 评测 osmo_易用能折叠的稳定器 大疆OSMO Mobile3评测
  7. DNGuard V1.0 for Win98, WinMe 的运行库发布
  8. WPF连接SQL数据库
  9. AndroidX深入浅出Jetpack全面介绍
  10. iphone开发设置横屏