Json Microsoft Azure dll在.NET 4.0中引发异常

Json Microsoft Azure dll在.NET 4.0中引发异常,json,serialization,azure,Json,Serialization,Azure,我已经开发了EXE项目(用于启动任务)并使用了Microsoft Azure的以下DLL 它在.Net framework 3.5中工作得很好,但在我的例子中,我需要使用system.runtime.serialization按照以下方式将类序列化为json字符串 public static string Serialize<T>(T obj) { System.Runtime.Serialization.Json.DataContract

我已经开发了EXE项目(用于启动任务)并使用了Microsoft Azure的以下DLL

它在.Net framework 3.5中工作得很好,但在我的例子中,我需要使用system.runtime.serialization按照以下方式将类序列化为json字符串

 public static string Serialize<T>(T obj)
        {
            System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new

            System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType());
            MemoryStream ms = new MemoryStream();
            serializer.WriteObject(ms, obj);
            string retVal = Encoding.Default.GetString(ms.ToArray());
            ms.Dispose();
            return retVal;
        }
公共静态字符串序列化(T obj)
{
System.Runtime.Serialization.Json.DataContractJsonSerializer serializer=新
System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType());
MemoryStream ms=新的MemoryStream();
serializer.WriteObject(ms,obj);
string retVal=Encoding.Default.GetString(ms.ToArray());
Dispose女士();
返回返回;
}
为此,我需要将框架更改为4.0,但当时我从Azure DLL得到了异常 像

Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment的类型初始值设定项引发异常

我认为微软所有的DLL都是向后兼容的,所以这件事出了什么问题

我应该找到另一种方法来序列化为json字符串?

我应该将Azure的DLL更改为最新版本吗


提前感谢。

如果您在.NET4中编写了一个控制台应用程序,并且希望使用RoleEnvironment,那么您将得到一个错误:

“Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment”的类型初始值设定项引发异常

要解决此问题,只需在默认app.config中生成的启动标记中添加“useLegacyV2RuntimeActivationPolicy”:

<startup useLegacyV2RuntimeActivationPolicy="true">


这是因为Microsoft.WindowsAzure.ServiceRuntime.dll是混合模式程序集。引用任何混合模式程序集都需要useLegacyV2RuntimeActivationPolicy属性,而不仅仅是Windows Azure程序集。

您可能需要检查的一件事是Visual Studio中.Net项目的目标框架。默认情况下,当您使用.Net framework在VS中创建项目时,它使用“.Net framework 4客户端配置文件”。尝试将其更改为“.Net Framework 4”,看看是否有帮助。

它不是“.Net Framework 4客户端配置文件”,我在它是“.Net Framework 4”之前检查过它。。