Is there a chance to get System.Security.Permissions.ReflectionPermission allowed for .NET 4.0?
I am getting an error when I try using standard .NET classes for JSON serialization.
Here is the stack trace:
Exception Details: System.Security.SecurityException: Request for the permission of type ‘System.Security.Permissions.ReflectionPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089’ failed.
[SecurityException: Request for the permission of type 'System.Security.Permissions.ReflectionPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.]
System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) +0
System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission cap, StackCrawlMark& stackMark) +31
System.Security.CodeAccessPermission.Demand() +46
System.Reflection.Emit.DynamicMethod.PerformSecurityCheck(Module m, StackCrawlMark& stackMark, Boolean skipVisibility) +248
System.Reflection.Emit.DynamicMethod..ctor(String name, Type returnType, Type[] parameterTypes, Module m, Boolean skipVisibility) +49
System.Runtime.Serialization.Json.CriticalHelper.BeginMethod(CodeGenerator ilg, String methodName, Type delegateType, Boolean allowPrivateMemberAccess) +162
System.Runtime.Serialization.Json.CriticalHelper.GenerateClassWriter(ClassDataContract classContract) +144
<%@ Page Language="C#" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Runtime.Serialization.Json" %>
<%@ Import Namespace="System.Runtime.Serialization" %>
<script runat="server">
[DataContract]
class Foo
{
[DataMember]
public bool bar = true;
}
class Tester
{
public static string DoStuff()
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Foo));
MemoryStream memStream = new MemoryStream();
Foo foo = new Foo();
serializer.WriteObject(memStream, foo); // Fails on this line
memStream.Position = 0;
StreamReader reader = new StreamReader(memStream);
return reader.ReadToEnd();
}
}
</script>
<html>
<% Response.Write( Tester.DoStuff()); %>
</html>
On my local machine it outputs the JASON representation of the the Foo object: {“bar”:true}
On the hosted site it throws the above mentioned exception.