安装 Windows Update KB4340558 后,如何在经典 ASP 中正确实例化 32 位 COM 对象? [英] How do I properly instantiate 32-bit COM objects in classic ASP after installing Windows Update KB4340558?

查看:22
本文介绍了安装 Windows Update KB4340558 后,如何在经典 ASP 中正确实例化 32 位 COM 对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在 Windows Server 2012 R2 上,安装更新后

19.07.2018

警告!此更改也有副作用:

asp-classic 事件Session_OnEnd"不再被调用,因此资源最终无法再被释放.但也有解决办法!

ASP-Config-Property "system.webServer/asp/runOnEndAnonymously" 必须为 "false",然后事件再次触发.

编辑 2:23.07.2018

正如 Dijkgraaf 指出的那样,微软现在认为这种新行为"是一个错误.所以我想我的解决方案"现在应该被视为一种解决方法,直到新补丁出现.

On Windows Server 2012 R2, after installing update KB4340558 (update history) / KB4338424 (installed updates) we can no longer instantiate .NET .DLLs (interop) in classic ASP in 32-bit mode using server.createobject. We receive the error 0x800A01AD "ActiveX component can't create object"

When we uninstall the update, the error disappears. Despite my best efforts, I was unable to find an alternate solution to uninstalling. We would prefer to reinstall the update and make whatever changes were necessary to Windows Server and/or the DLL's to allow the COM objects to be instantiated properly. There are no clues in the system logs, no clues in the CVE database, and no clues in the errors ASP is generating. Please help!

解决方案

We were affected with multiple customers too.

I ruled out invalid strong-name signing of our assemblies, since the .NET Assemblies from the Framework itself were affected by that access-denied error too.

Finally I managed to solve the issue by configuration. Apparently the authenticating identity of the website has now to match the identity of the app-pool. Or IUSR has no longer enough permissions.

EDIT: 19.07.2018

Warning! This change also has a side-effect:

The asp-classic event "Session_OnEnd" was no longer called and therefore resources eventually could no longer be freed. But there is a fix for that, too!

The ASP-Config-Property "system.webServer/asp/runOnEndAnonymously" has to be "false", then the event fires again.

EDIT 2: 23.07.2018

As Dijkgraaf pointed out, Microsoft now considers this "new behaviour" a bug. So i guess my "solution" should now be considered a workaround until a new patch comes to rescue.

这篇关于安装 Windows Update KB4340558 后,如何在经典 ASP 中正确实例化 32 位 COM 对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆