【发布时间】:2012-06-15 00:08:17
【问题描述】:
我收到“无法获取 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 访问权限、字符串目录、证据证据、PermissionSet requiredPermissions、PermissionSet optionalPermissions、PermissionSet deniedPermissions、StackCrawlMark 和 stackMark、IEnumerable1 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, IEnumerable1 unsafeAssemblyAttributes、SecurityContextSource securityContextSource)
在 System.AppDomain.InternalDefineDynamicAssembly(AssemblyName 名称、AssemblyBuilderAccess 访问权限、字符串目录、证据证据、PermissionSet requiredPermissions、PermissionSet optionalPermissions、PermissionSet deniedPermissions、StackCrawlMark 和 stackMark、IEnumerable`1 assemblyAttributes、SecurityContextSource securityContextSource)
在 System.AppDomain.DefineDynamicAssembly(AssemblyName 名称,AssemblyBuilderAccess 访问)
在 Newtonsoft.Json.Utilities.DynamicWrapper.Init()
在 Newtonsoft.Json.Utilities.DynamicWrapper.GenerateWrapperType(类型接口类型,类型基础类型)
在 Newtonsoft.Json.Utilities.DynamicWrapper.GetWrapper(类型 interfaceType,类型 realObjectType)
在 Newtonsoft.Json.Utilities.DynamicWrapper.CreateWrapper[T](Object realObject)
在 Newtonsoft.Json.Converters.EntityKeyMemberConverter.WriteJson(JsonWriter 编写器,对象值,JsonSerializer 序列化程序)
在 Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeConvertable(JsonWriter 编写器,JsonConverter 转换器,对象值,JsonContract 合同,JsonContainerContract 集合合同,JsonProperty containerProperty)
......
【问题讨论】: