It occur at the Data Import Export Framework > Setup > Source data format > Validate (button).
Took a quick look at the code which causes this error, it came from \Data Dictionary\Tables\DMFDataSourceProperties\Methods\validateConnectionString - Ln 49, on the statement "cryptoblob2str(WinAPIServer::cryptUnProtectData(_dmfDataSourceProperties.Password))".
It is trying to decrypt data that's encrypted from another environment, which will cause error in this case. The "Password" field in the table is storing the encrypted data. Our setup is to use "System DSN " from the "AOS", so there're two way for us to fix it:
1. Clear the "Password" field from back-end (Eg. DMFDataSourceProperties.Password = conNull(); DMFDataSourceProperties.update();)
2. Delete the existing record and create a new one with the exact same setup
It works in our case due to we just need this field to be empty as it won't be used.
Detail error message
System.Reflection.TargetInvocationException: Exception has
been thrown by the target of an invocation. --->
System.Security.Cryptography.CryptographicException: Key not valid for use in
specified state.
at
System.Security.Cryptography.ProtectedData.Unprotect(Byte[] encryptedData,
Byte[] optionalEntropy, DataProtectionScope scope)
--- End of inner
exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object
target, Object[] arguments, Signature sig, Boolean constructor)
at
System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[]
parameters, Object[] arguments)
at
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr,
Binder binder, Object[] parameters, CultureInfo culture)
at
Microsoft.Dynamics.AX.ManagedInterop.ClrBridgeCore.InvokeClrStaticMethod(Char*
pszClassName, Char* pszMethodName, Char* assemblyName, Int32 argsLength,
ObjectWrapper** arguments, Boolean* argsAreByRef, Boolean* isException)
No comments:
Post a Comment