Mixed Mode C++ DLL function call failure when app launched from network share. Called from unmanaged c application

0

Mixed-mode DLL called from native C application fails to load: An unhandled exception of type 'System.IO.FileLoadException' occurred in Unknown Module.

Additional information: Could not load file or assembly 'XXSharePoint, Version=0.0.0.0, Culture=neutral, PublicKeyToken=e0fbc95fd73fff47' or one of its dependencies. Failed to grant minimum permission requests. (Exception from HRESULT: 0x80131417)

My environment is: Native C application calling a mixed mode C++ DLL, which then loads a C# DLL.. This works correctly when loaded from a local drive, but when launched from a network drive, it fails with the above messages.

The call to LoadLibrary succeeds, as does the GetProcAddress. The load error happens when I call the function.

I have digitally signed the C application, and I've performed "strong name" signing on the 2 DLLs. The PublickKeyToken in the message above does match the named DLL. I have also issued the CASPOLcommands on my client to grant FullTrust to that strong name keytoken. When that failed to work, I tried the CASPOL command to grant FullTrust to the URL of the network drive (including path to my application's directory); no change in results.

I tried removing all dependencies, so that there was just the initial mixed-mode DLL... I replaced the bodies of all the functions with just a return of a "success" integer value. Results unchanged. Only when I changed it from Mixed Mode to Win32, and changed the Configuration Properties >> General >> Common Language Runtime Support from "Common Language Runtime Support" to "No Common Language Runtime Support" did calling the DLL produce the expected result (just returned the "success" integer return value).

.net
mixed-mode
full-trust
asked on Stack Overflow Sep 1, 2009 by Steve

1 Answer

1

You Haven't the permission to execute code on this share. I think you can't exen execute any .NET app from the share. Try it out, place some .NET executable on the share, and try to execute it. If it doesn't work, you have to add permission in your .net config to use the share.

answered on Stack Overflow Sep 2, 2009 by Thomas Maierhofer

User contributions licensed under CC BY-SA 3.0