问题描述
在Windows Server 2012 R2上,安装更新后 KB4340558 (更新历史记录)/ KB4338424 (已安装的更新),我们无法再实例化使用server.createobject
在32位模式下的经典ASP中的.NET .DLL(互操作).我们收到错误0x800A01AD"ActiveX组件无法创建对象"
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"
当我们卸载更新时,错误消失了.尽管尽了最大的努力,但我找不到替代的解决方案来卸载.我们希望重新安装更新,并对Windows Server和/或DLL进行必要的更改,以正确地实例化COM对象.系统日志中没有任何线索,CVE数据库中没有任何线索,ASP生成的错误中也没有线索.请帮忙!
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.
我排除了程序集的无效强名称签名,因为来自框架本身的.NET程序集也受到该访问被拒绝的错误的影响.
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.
最后,我设法通过配置解决了该问题.显然,网站的身份验证身份现在必须与应用程序池的身份匹配.或IUSR的权限不再足够.
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.
2018年7月19日
警告!此更改也有副作用:
Warning! This change also has a side-effect:
不再调用asp-classic事件"Session_OnEnd",因此最终无法再释放资源.但这也有解决方法!
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!
ASP-Config-Property"system.webServer/asp/runOnEndAnonymously"必须为"false",然后事件再次触发.
The ASP-Config-Property "system.webServer/asp/runOnEndAnonymously" has to be "false", then the event fires again.
23.07.2018
正如 Dijkgraaf 指出的那样,Microsoft现在认为此新行为"是一个错误.因此,我想我的解决方案"现在应该被视为解决方法,直到可以发布新补丁为止.
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对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!