Volker Fried
Volker Fried

Reputation: 421

Since Windows Update kb4340556: VBA COM .NET Automation error on CreateObject()

Since the update Windows7 Update KB 4340556 of the Jul 10, 2018 we get the following error message:

"Automation Error" : The system cannot find the file specified" from the Access VBA CreateObject() call.

 Set ComClass = CreateObject("MyApplication1.InteropStart")

Microsoft identifies this as a security issue.

If we uninstall the update KB4340556, the call will work as before.

Does anyone have the same problem? Or a better solution than the update to uninstall?

Upvotes: 10

Views: 5726

Answers (6)

Volker Fried
Volker Fried

Reputation: 421

Our Interop .Net Assembly had a signature with a strong name. The signing is apparently no longer accepted. Creating a new signature (* .snk file) in Visual Studio causes the CreateObject ComInterop call to work again.

EDIT 26.07.2018

We enabled User Account Control (UAC) on the machines from our customers like Pao'lino described.

Creating a new signature also create a new public key token for the assembly. This causes reference problems.

Upvotes: 5

Pao'lino
Pao'lino

Reputation: 59

Enabling UAC and setting it to default level fixed the issue for us.

Our scenario is .NET assemblies exposed to COM and a VB6 application instancing this .NET objects with CreateObject.

Update.. The UAC trick doesn't work on Windows Server 2012 R2.

Upvotes: 2

keydon
keydon

Reputation: 729

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. enter image description here

Upvotes: 6

TB DTC
TB DTC

Reputation: 41

To corroborate what other users here have said. We are also having problems following KB4340556. The following code

Set myObject = CreateObject("System.Collections.ArrayList")

causes a 'Permission Denied' error when creating a .NET component within classic ASP running on IIS and Server 2008r2 64bit.

The same code run in a .vbs file (in 32 bit) works fine.

Specifying a different version of .NET in the application pool has no effect.

Upvotes: 1

Jeff Wilson
Jeff Wilson

Reputation: 31

We are experiencing problems as well. We found that it was actually one of the embedded updates inside of KB4340556 - KB4338420 that was causing our the problem.

We have an APP that uses COM object as a hook between itself and MS Office. Installing this update removed the COM object causing the required mscoree.dll not to load. Only seeing the problem on 64bit Win7 with 64Bit Office products installed.

I have posted to the developer community at visualstudio.com (https://developercommunity.visualstudio.com/content/problem/291884/july-2018-cumlative-security-and-quality-update-kb.html) in their .NET forum. The problem is under Triage at the moment. Removing KB4338420 fixes the problem temporarily, but then the next time your system checks for updates, it thinks KB4340556 is not installed and wants to re-install it. Only work around for now is to hide the update, since it is only KB4338420 that is missing.

Upvotes: 3

Related Questions