不知道这是否属于这里或所以在这里呢?
我们有一个CruiseControl.NET服务器,每晚执行构build或应用程序,然后将结果输出发布到同一个盒子上的IIS实例 – 这就是QA的testing部署。
一切都运行良好,直到我们搬到新的服务器(Win2003 R2 SP1) – 实际上是一个虚拟机。
现在,每晚构build发布到IIS,我们在浏览器中出现一个错误,说明编译器失败,错误代码为128 。 这从来没有发生在旧的服务器上!
运行aspnet_regiis -i将使网站恢复在线状态,但是我很困惑,为什么IIS似乎已经忘记了所有关于.NET的情况,因为这是一个简单的文件复制的结果。
我已经审查了构build过程的发布阶段,并从良好的老式批处理脚本移动到“清洁”nAnt脚本,但问题依然存在。
如果我运行上面的命令,清除事件日志,然后访问该网站出现一个新的事件:
The configuration information of the performance library "C:\WINDOWS\system32\infoctrs.dll" for the "InetInfo" service does not match the trusted performance library information stored in the registry. The functions in this library will not be treated as trusted.
但该网站仍然没有任何问题加载。 如果我然后运行任一发布脚本(.bat或.build)然后访问该站点另一个相同的事件出现,编译错误显示(运行aspnet_regiis修复它虽然)。
如果我手动删除旧文件并复制新文件,那么编译器错误再次显示在浏览器中。
现在快速解决方法是运行aspnet_regiis作为构build脚本的一部分,但坦率地说,只是闻起来不好。
[编辑12/11/09]:我已经踢了一会儿,现在仍然不知道为什么发生。 我已经重新安装了IIS和.NET 2.0&3.0(不需要3.5),但问题仍然存在。 最后,我尝试使用通过“发布”版本(而不是“debugging”)构build的文件来部署应用程序,这似乎解决了这个问题 – 但我不知道为什么。
明天早上我会发现,夜晚的build筑怒气冲冲后,希望我有一些好消息等着我。 假设这是问题,为什么它有所作为? 这个过程在物理服务器上运行了好几个月,为什么它应该在虚拟机上造成问题?
任何人有任何想法,build议或解决scheme..? 提前致谢
它可能与网站的默认框架1.1或2.0有关。 aspnet_regiis设置框架版本。
如果你:
要么
那么默认的框架是不一样的。 也可能是您安装的是设置框架版本。
VM本身没有被回滚,是吗?