首页 文章

升级到2012年6月SDK后的例外情况

提问于
浏览
9

我有一个项目启动并运行2011年11月的SDK,最近升级到2012年6月的SDK . 当我第一次看到错误时,我尝试了显而易见的 - 删除引用并添加更高版本,但这没有帮助 . 不知怎的,似乎仍在请求版本1.0.0.0 . 我也试图删除引用并添加旧版本,但没有运气 .

这是它在我的代码中显示的方式 . 现在命中的第一个Trace.WriteLine报告以下异常:

System.IO.FileLoadException未由用户代码处理Message =无法加载文件或程序集'Microsoft.WindowsAzure.Diagnostics,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一 . 定位的程序集的清单定义与程序集引用不匹配 . (来自HRESULT的异常:0x80131040)Source = mscorlib FileName = Microsoft.WindowsAzure.Diagnostics,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35 FusionLog ====预绑定状态信息===日志:用户= NT AUTHORITY \ NETWORK SERVICE LOG:DisplayName = Microsoft.WindowsAzure.Diagnostics,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35(Full-specified)LOG:Appbase = file:/// F:/ SVNProjects / myproject / SitePagesWebRole / LOG :Initial PrivatePath = F:\ SVNProjects \ myproject \ SitePagesWebRole \ bin调用程序集:(未知) . ===日志:此绑定在默认加载上下文中启动 . 日志:使用应用程序配置文件:F:\ SVNProjects \ myproject \ SitePagesWebRole \ web.config日志:使用主机配置文件:C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet.config日志:使用机器配置文件来自C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ config \ machine.config . 日志:政策后参考:Microsoft.WindowsAzure.Diagnostics,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35日志:尝试下载新的URL文件:/// C:/Windows/Microsoft.NET/Framework64/v4 .0.30319 / Temporary ASP.NET Files / root / b117acb8 / f2404402 /Microsoft.WindowsAzure.Diagnostics.DLL . 日志:尝试下载新的URL文件:/// C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files / root / b117acb8 / f2404402 / Microsoft.WindowsAzure.Diagnostics /Microsoft.WindowsAzure.Diagnostics .DLL . 日志:尝试下载新的URL文件:/// F:/SVNProjects/myproject/SitePagesWebRole/bin/Microsoft.WindowsAzure.Diagnostics.DLL . 警告:比较程序集名称导致不匹配:次要版本错误:无法完成程序集的设置(hr = 0x80131040) . 探测终止 . StackTrace:在System.RuntimeTypeHandle.GetTypeByName(String name,Boolean throwOnError,Boolean ignoreCase,Boolean reflectionOnly,StackCrawlMarkHandle stackMark,Boolean loadTypeFromPartialName,ObjectHandleOnStack type)处于System.RuntimeTypeHandle.GetTypeByName(String name,Boolean throwOnError,Boolean ignoreCase,Boolean reflectionOnly,StackCrawlMark& stackMark,Boolean loadTypeFromPartialName)System.Type上的System.Type.GetType(String typeName),位于System.Diagnostics.ListenerElement的System.Diagnostics.TypedElement.BaseGetRuntimeObject()的System.Diagnostics.TraceUtils.GetRuntimeObject(String className,Type baseType,String initializeData) . 位于System.Diagnostics.TraceInternal.get_Listeners()的System.Diagnostics.ListenerElementsCollection.GetRuntimeObject()的System.Diagnostics.TraceInternal.getListeners()中的GetRuntimeObject()位于myproject.GameAPI.Login(Int64 fbid,Int64 [] friends)的System.Diagnostics.TraceInternal.WriteLine(String message)在F:\ SVNProjects \ myproject \ GameLogic \ GameAPI.cs:第119行InnerException:

怎么解决这个问题?

3 回答

  • 14

    检查web.config / app.config以获取所有角色 . 确保将对Microsoft.WindowsAzure.Diagnostics程序集的任何引用的版本号更改为版本 1.7.0.0

  • 2

    web / worker角色项目中的所有azure程序集引用都应指向1.7.0.0版本 . 您的ccproj文件应包含

    <ProductVersion>1.7</ProductVersion>
    

    确保Azure实例包含正确的基本程序集 .

    您还可以检查是否将 Microsoft.WindowsAzure.Diagnostics 复制到输出/天蓝色包中 .

  • 1

    上面的内容对我来说不起作用(我看到它说的是1.7),而是我浏览了每个项目,删除并重新添加了以下开头的任何引用:

    Microsoft.WindowsAzure.*
    

    当您重新添加它们时,请确保它说的是版本1.7 .

相关问题