2017-10-11 8 views
1

Y at-il une solution pour le programme d'installation VSIX si le cryptage FIPS est activé?Le programme d'installation VSIX se bloque si le cryptage FIPS est activé

Détails de l'erreur: application: vsixinstaller.exe

Framework Version: v4.0.30319

Description: Le processus a été interrompu en raison d'une exception non gérée.

Exception Info: System.InvalidOperationException

à System.Security.Cryptography.MD5CryptoServiceProvider..ctor()

Exception Info: System.Reflection.TargetInvocationException

au système. RuntimeMethodHandle.InvokeMethod (System.Object, System.Object [], System.Signature, Boolean)

à System.Reflection.RuntimeConstructorInfo.Invoke (System.Reflection.BindingFlags, System.Reflection.Binder, System.Object [], System.Globalization.CultureInfo)

à System.Security.Cryptography.CryptoConfig.CreateFromName (système .String, System.Object [])

à System.Security.Cryptography.MD5.Create()

à Microsoft.VisualStudio.ExtensionManager.Shared.TelemetryLogger.EndBlockingProcessTelemetry (Microsoft.VisualStudio.Telemetry.TelemetryScope 1<Microsoft.VisualStudio.Telemetry.OperationEvent>, Boolean, System.Collections.Generic.IEnumerable 1)

à VSIXInstaller.BlockPage.N avigateToInstall (System.Threading.CancellationToken)

Exception Info: System.Reflection.TargetInvocationException

à System.RuntimeMethodHandle.InvokeMethod (System.Object, System.Object [], System.Signature, Boolean)

à System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal (System.Object, System.Object [], System.Object [])

à System.Delegate.DynamicInvokeImpl (System.Object [])

à System.Windows.Threading.ExceptionWrapper.InternalRealCall (System.Delegate, System.Object, Int32)

à System.Windows.Threading.ExceptionWrapper.TryCatchWhen (System.Object, System.Delegate, système. Object, Int32, System.Delegate)

à System.Windows.Threading.DispatcherOperation.InvokeImpl()

à System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext (System.Object)

au système. Threadi ng.ExecutionContext.RunInternal (System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)

à System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)

à System.Threading.ExecutionContext.Run (système. Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)

à MS.Internal.CulturePreservingExecutionContext.Run (MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object)

au système. Windows.Threading.DispatcherOperation.Invoke()

à System.Windows.Threading.Dispatcher.ProcessQueue()

à System.Windows.Threading.Dispatcher.WndProcHook (IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)

à MS.Win32 .HwndWrapper.WndProc (IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)

à MS.Win32.HwndSubclass.DispatcherCallbackOperation (System.Object)

à System.Windows.Threading.ExceptionWrapper.InternalRealCall (système. Delegate, System.Object, Int32)

à System.Windows.Threading.ExceptionWrapper.TryCatchWhen (System.Object, System.Delegate, System.Object, Int32, System.Delegate)

à System.Windows.Threading.Dispatcher.LegacyInvokeImpl (système. Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)

à MS.Win32.HwndSubclass.SubclassWndProc (IntPtr, Int32, IntPtr, IntPtr)

à MS.Win32. UnsafeNativeMethods.DispatchMessage (System.Windows.Interop.MSG ByRef)

à System.Windows.Threading.Dispatcher.PushFrameImpl (System.Windows.Threading.DispatcherFrame)

à System.Windows.Threading.Dispatcher.PushFrame (System.Windows.Threading.DispatcherFrame)

au système .Windows.Application.RunDispatcher (System.Object)

à System.Windows.Application.RunInternal (System.Windows.Window)

à System.Windows.Application.Run (System.Windows.Window)

à VSIXInstaller.App.Main()

+0

Quelle est la callstack? Le programme d'installation VSIX est une application gérée, vous pouvez y attacher un débogueur sans trop de problèmes. – Cameron

+0

J'ai ajouté l'erreur dans l'observateur d'événements lors d'un plantage. –

Répondre

0

Eh bien, décompilation le constructeur MD5CryptoServiceProvider affiche les informations suivantes:

public MD5CryptoServiceProvider() { 
    if (CryptoConfig.AllowOnlyFipsAlgorithms) 
     throw new InvalidOperationException(Environment.GetResourceString("Cryptography_NonCompliantFIPSAlgorithm")); 
    // ... 
} 

Ainsi, fondamentalement, le framework .NET est la vérification de la conformité explicitement FIPS et lancer une exception quand il est activé, que le programme d'installation VSIX ne gère pas.

Je suggère d'ouvrir un bogue avec Microsoft Connect (y compris la trace de la pile), car le programme d'installation devrait probablement être capable de gérer cette exception et de continuer malgré tout l'installation.

Vous pourriez avoir de la chance de contourner ce problème localement pour activer une installation en modifiant le fichier de configuration de l'exécutable du programme d'installation de VSIX sur forcibly disable FIPS compliance.

+0

J'ai essayé de modifier le fichier de configuration mais c'est toujours la même erreur. Je vais juste ouvrir un bug. –

+0

Ajout d'un bogue dans Microsoft Connect: https://connect.microsoft.com/VisualStudio/feedback/details/3142760/vsix-installer-crashes-if-the-fips-encrytion-is-enabled-on-the-system –