Ich versuche, eine Mock HttpContextBase für Komponententest zu erstellen.StrongNameKeyPair Problem beim Versuch, MoQ zu verwenden
var fakePrinciple = new GenericPrincipal(
new GenericIdentity(userId),
rolesList.ToArray());
var mockHttpContext = new Mock<HttpContextBase>();
mockHttpContext.Setup(t => t.User).Returns(fakePrinciple);
HttpContextBase mockedContext = mockHttpContext.Object;
Das Gerät Test nicht bei der letzten Anweisung mit
Ausnahme ausgelöst hat: System.ArgumentException: Kann nicht für den öffentlichen Schlüssel erhalten StrongNameKeyPair ..
System.Reflection.StrongNameKeyPair .nGetPublicKey (Boolean exportiert, Byte [] Array, String Container) System.Reflection.StrongNameKeyPair.get_PublicKey() System.AppDomain.InternalDefineDynamicAssembly (Assembly Name, Assembly Zugang, String dir, evidence, PermissionSet requiredPermissions, PermissionSet optionalPermissions, PermissionSet refusedPermissions, StackCrawlMark & stackMark, IEnumerable`1 unsafeAssemblyAttributes) System.AppDomain. DefineDynamicAssembly (Assembly Name, Assemblyzugriff) Castle.DynamicProxy.ModuleScope.CreateModule (Boolean signStrongName) Castle.DynamicProxy.ModuleScope.ObtainDynamicModuleWithStrongNam e() Castle.DynamicProxy.ModuleScope.ObtainDynamicModule (Boolean isStrongNamed) Castle.DynamicProxy.Generators.Emitters.ClassEmitter.CreateTypeBuilder (ModuleScope modulescope, String name, Typ (bla bla Snip)
I gegoogelt und hier scheinen nicht die Vorschläge zur Arbeit (RSA-Ordner Sicherheitsänderung usw. Einstellung) http://groups.google.com.br/group/castle-project-users/browse_thread/thread/85685cf32a795158
bin ich Teil System.Web.Abstraction
, zu denken, zu korrigieren, dass, weil HttpContextBase
ist, die eine signierte Assembly ist. Moq wird tatsächlich versuchen, die dynamische Assembly zu signieren und fehlschlagen?
FWIW, ich habe Moq verwendet zu verspotten Httpcontextbase viele Male und hatte nie das Problem.Was auch immer Ihr Problem ist, es ist nicht allgemein für die Kombination von Moq und HttpContextBase. –
Der Trick ist, dass die Berechtigungen auf MachineKeys-Ordner nicht RSA festgelegt werden müssen. Der Beitrag von Ayende macht das nicht völlig offensichtlich, wenn Sie nicht vorsichtiger Leser sind. –
So froh, dass ich das gefunden habe, ugh, zwei Tage und endlich behoben: D. Ich wollte nur noch ein paar Referenzen hinzufügen, die mir geholfen haben, falls jemand anderes dazu kommt: http://ansaurus.com/question/3154345-strong-name-keys-on-windows-7 | http://msdn.microsoft.com/en-us/library/bb909654(v=vs.90).aspx hat mir wirklich geholfen, die Reparatur, die für mich arbeitete, auf Null zu bringen. –