COM Exception with Hummingbird DM API x64 - exception

I have a web application which severs as a SAML bridge to Authenticate between the Google Search Appliance and Hummingbird. I am using the Open Text eDOCS DM 5.1 Extensions (x84) PCDClient.dll to connect
For some reason I keep getting
Retrieving the COM class factory for component with CLSID {BAE80C14- D2AC- 11D0 - 8384 - 00A0C92018F4} failed due to the following error: 80040154
When my code makes a call to a login function in the API.
login = new PCDLogin();
Please help..

That's a 'Class not Registered' error. You may need to reinstall the software that created the COM object or use some other method to ensure that the CLSID is there.
If you check the registry for
HKEY_CLASSES_ROOT\CLSID\{BAE80C14- D2AC- 11D0 - 8384 - 00A0C92018F4}
to see if it exists it will give you an idea.
HKCR\CLSID is the registry of 64-bit COM objects, and HKCR\Wow6432Node\CLSID is the registry of 32-bit COM objects. A 32-bit process cannot load a 64-bit DLL into its address space; that's why the two registries are separate.
If the object you're looking for is 64bit but you are trying to load it from 32-bit client, you would get this error.

Related

SSRS 2016: Report Delivery Extension to send report email via MicrosoftGraph&AzureIdentity, but error in assembly version of Microsoft.Identity.Client

Microsoft announced the expiration of Basic Authentication in Exchange Online except STMP AUTH, but no guarantee on using it for long term. So, I decide to start the change with our Reports delivery in SSRS 2016 which mainly via SMTP email right now.
After reading many sources, I found that SSRS has Report Delivery Extension which we can build assembly to customize new Delivery Method, and from here I can send the Report Email through Microsoft Graph & Azure Identity.
Link of delivery extension
In the Project, I added Nuget Package of:
Microsoft Graph package version 4.47
Azure Identity version 1.8
the VS automatically add other dependencies to project and I can build the project successfully without any Warnings or Error
However, deploying the assembly to SSRS, after the subscription runs, I got the error in the log as following:
notification!WindowsService_0!59ac!11/18/2022-16:42:08:: i INFO: Notification 27e69a92-12b9-4ab8-984f-d5910af77de7 completed. Success: True, Status: Error: Could not load file or assembly 'Microsoft.Identity.Client, Version=4.46.0.0, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
I check carefully the dependency of other assembly in nuget website, but nothing indicates that I'm using wrong version. The Microsoft.Identity.Client.dll file is copied to Bin folder of ReportServer.
I tried to update the Microsoft.Identity.Client.dll file with version 4.46.0 in nuget (ignore the dependencies), but another assembly version mismatch comes up:
notification!WindowsService_0!4d94!11/17/2022-23:59:03:: i INFO: Notification b82bb214-3880-4f80-857b-cdf42cde8ff0 completed. Success: True, Status: Error: Could not load file or assembly 'System.Diagnostics.DiagnosticSource, Version=4.0.4.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
And now, I could not find the System.Diagnostics.DiagnosticSource.dll with version 4.0.4.
I can only find version 4.0.0 or 4.3 above.
Now I'm stuck here.
Does anyone have experience on this?
How can I bypass this dependency check?
I even try to downgrade version of Azure.Identity version to lower one, but still stop at the System.Diagnostics version 4.0.4
Then I create a Console Application which I just send a test email with all latest version of assembly Azure.Identity and Microsoft.Graph on the same server (same .Net Framework 4.7.2 and same firewall configuration). It can be sent sucessfully.
I'm in doubt that SSRS 2016 has any assembly confliction which point to lower version of those assemblies.
I have the exact same problem, but with building an add-on for Act! for Windows. My code works outside Act! in a standalone .NET 4.7.2 app, but I get the exact same conflict as described above when loaded within Act!. That said, Act! itself doesn't even use Microsoft.Identity.Client (that dll is not part of it)

Lift and shift SSIS packages to ADF

I am working on lift and shift SSIS packages through ADF. Setup have been done properly but when I trigger the activity in ADF, I see this error "Package execution failed. For more details, select the output of your activity run on the same row". How to resolve this error?
Going through the official MS docs, I can see the below error documented. Can you try as suggested.
Error message: "Staging task failed. TaskStatus: Failed, ErrorCode: 2906, ErrorMessage: Package execution failed. For more details, select the output of your activity run on the same row., Output: {"OperationErrorMessages": "4/14/2021 7:10:35 AM +00:00 : = Failed to start Named pipe proxy... "
Check if security policies are correctly assigned to the account
running self-hosted IR service. If Windows authentication is used on
Execute SSIS Package activity or the execution credential is set in
SSIS catalog (SSISDB), the same security policies must be assigned to
the Windows account used. More detail can be found at Configure
Self-Hosted IR as a proxy for Azure-SSIS IR in
ADF

Confluence html macro ssl exception

We are using the html-include macro for displaying content from an https resource. However, if we include the macro the following exception occurs:
Error rendering macro 'html-include' :
com.atlassian.renderer.v2.macro.MacroException:
com.atlassian.confluence.macro.MacroExecutionException:
javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target
We don't know what to do for getting this to work. Can you please help us?
Cause
The two instances communicating do not explicitly trust one another, even though they are using the same keystore. The certificate the instances are using must be present in the truststore for server-to-server communication to work.
Resolution
Follow the instructions in this document: Connecting to LDAP or JIRA or Other Services via SSL if you are on JDK 1.5
Follow the instructions in this document: keytool - Key and Certificate Management Tool if you are on JDK 1.6
This will require a restart of all applications that have the parameter added.

'Could not load file or assembly 'Newtonsoft.Json, Version=6.0.0.0' error only when calling WCF REST method via the Internet

In our SharePoint 2013 Dev Machine, I have a WCF Rest web service that can be access via the a class library. The class library has the 'Newtonsoft.Json 6.0.5' installed successfully via nuget.org (Package Manager Console). The solution builds without any issue.
My SharePoint site has 2 way of being connected:
Local Network: When accessed this way, the WCF REST method call works smooth. I get the correct results as well.
Internet Access: We have alternative access mapping and when the WCF Rest method is called, I get the below mentioned error:
Message: Could not load file or assembly 'Newtonsoft.Json,
Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or
one of its dependencies. The system cannot find the file specified.
Note: Web application/bin folder has correct .dll version (6.0.5.17707)
Am I missing anything?
Found the solution:
I had extended my web application to map to the internet (Alternative access mapping), which meant that I had a new bin folder for the new port. Once I copied and pasted the Dlls to the new bin. The error vanished.

Brokered Component not working when deploying to client

I created a test App with brokered copmonent and it runs smooth on my machine, but when moved it to a tablet and did all the required settings (regsvr32, icacls), it throws an exception. then I went and downloaded the Microsoft Northwind sample and it act the same. works fine on my machine but not on the other tablet. Am I missing any thing here? here is the exception, it's casting exception and Access denied exception:
Unable to cast COM object of type 'NorthwindRT.DAL.FileWatcher' to interface type 'NorthwindRT.DAL.IFileWatcherClass'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{23F40340-AEB1-5774-5705-64488C9BDD3A}' failed due to the following error: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)).
but I did on the tablet the same things I did on the developing machine!
I moved the required files to the correct directory and enabled read/execute to all applications and I registered the proxy using regsvr32. Also the user can access the directory where the implementation dll is located so Access is denied exception is weird.
I did my research about brokered comp and I am doing exactly like the available documentations!
Any Ideas? Am I missing anything here? Is there extra settings I need to do? is my system missing any required dlls?
The App does not have access to msvcr120d.dll
add "ALL APPLICATION PACKAGES" to this dll and it will solve the issue.
I am also working on brokered component, so far I did had some success in development as well as deployment.
Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
You need to run icacls in the folder where you have the proxystub.dll and the winmd implementation.
icacls . /T /grant "ALL APPLICATION PACKAGES":RX
Now if you're deploying to a device that does not have a dev environment (i.e. Visual studio), you need to install Visual C++ Redistributable for Visual Studio 2015 (you can use whatever VS version you have, it just happend that i am using VS2015). You can download it here. And one more thing, since you don't have a development environment in the device, you would like to deploy Release assemblies not Debug so that the assemblies won't be referencing libraries or dll that is for debug (i.e. msvcr120.dll instead of msvcr120d.dll) because it won't be found in a clean device.
Lastly, I have a blog about brokered component. You might want to check it out.