我收到“无法获取StrongNameKeyPair的公钥”。在我的asp.net应用程序中使用Newtonsoft的JsonConvert.SerializeObject方法的异常。它在本地工作,但不在我们的测试服务器上。 (如果你知道原因,请在http://json.codeplex.com/workitem/22692帮助我): - )
我发现Unable to obtain public key for StrongNameKeyPair和其他一些帖子提到更改C:\ ProgramData \ Microsoft \ Crypto \ RSA \ MachineKeys目录的权限,但是这样安全,我的网络管理员甚至会让我这样做?
编辑:这是一个堆栈跟踪:
3e无法获取StrongNameKeyPair的公钥。
System.ArgumentException
在System.Reflection.StrongNameKeyPair.ComputePublicKey()
在System.Reflection.StrongNameKeyPair.get_PublicKey()
在System.Reflection.Emit.AssemblyBuilder..ctor(AppDomain域,AssemblyName名称,AssemblyBuilderAccess访问,String目录,证据证据,PermissionSet requiredPermissions,PermissionSet optionalPermissions,PermissionSet rejectedPermissions,StackCrawlMark& stackMark,IEnumerable 1 unsafeAssemblyAttributes, SecurityContextSource securityContextSource)
at System.Reflection.Emit.AssemblyBuilder.InternalDefineDynamicAssembly(AssemblyName name, AssemblyBuilderAccess access, String dir, Evidence evidence, PermissionSet requiredPermissions, PermissionSet optionalPermissions, PermissionSet refusedPermissions, StackCrawlMark& stackMark, IEnumerable
1 unsafeAssemblyAttributes,SecurityContextSource securityContextSource)
at System.AppDomain.InternalDefineDynamicAssembly(AssemblyName name,AssemblyBuilderAccess access,String dir,Evidence evidence,PermissionSet requiredPermissions,PermissionSet optionalPermissions,PermissionSet rejectedPermissions,StackCrawlMark& stackMark,IEnumerable`1 assemblyAttributes,SecurityContextSource securityContextSource)
在System.AppDomain.DefineDynamicAssembly(AssemblyName名称,AssemblyBuilderAccess访问)
at Newtonsoft.Json.Utilities.DynamicWrapper.Init()
在Newtonsoft.Json.Utilities.DynamicWrapper.GenerateWrapperType(类型interfaceType,类型underlyingType)
at Newtonsoft.Json.Utilities.DynamicWrapper.GetWrapper(TypeTypeType,Type realObjectType)
at Newtonsoft.Json.Utilities.DynamicWrapper.CreateWrapper [T](Object realObject)
at Newtonsoft.Json.Converters.EntityKeyMemberConverter.WriteJson(JsonWriter writer,Object value,JsonSerializer serializer)
at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeConvertable(JsonWriter writer,JsonConverter converter,Object value,JsonContract contract,JsonContainerContract collectionContract,JsonProperty containerProperty)
......
答案 0 :(得分:0)
我发现这篇文章:http://ayende.com/blog/1441/unable-to-obtain-public-key-for-strongnamekeypair我想如果Ayende Rahien发布它,这是一个很好的答案。
我也只给了Everyone读写权限并且它有效(服务器可能已经重新启动,但我不确定它是否存在或者是否有帮助)。