【问题标题】:Exception after upgrade to June 2012 SDK升级到 2012 年 6 月 SDK 后的异常
【发布时间】:2012-06-25 15:13:32
【问题描述】:

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

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

System.IO.FileLoadException 未被用户代码 Message=Could 处理 不加载文件或程序集'Microsoft.WindowsAzure.Diagnostics, 版本=1.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35' 或 它的依赖项之一。定位程序集的清单定义 与程序集引用不匹配。 (HRESULT 的例外情况: 0x80131040) 来源=mscorlib
文件名=Microsoft.WindowsAzure.Diagnostics,版本=1.0.0.0, 文化=中立,PublicKeyToken=31bf3856ad364e35 FusionLog==== 预绑定状态信息 === LOG: User = NT AUTHORITY\NETWORK 服务日志:DisplayName = Microsoft.WindowsAzure.Diagnostics, 版本=1.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35 (完全指定)日志:Appbase = file:///F:/SVNProjects/myproject/SitePagesWebRole/ LOG:初始 PrivatePath = F:\SVNProjects\myproject\SitePagesWebRole\bin 调用 组装:(未知)。 === LOG:此绑定在默认加载上下文中开始。 LOG:使用应用程序配置文件: 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, 版本=1.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35 日志: 正在尝试下载新 URL file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET 文件/root/b117acb8/f2404402/Microsoft.WindowsAzure.Diagnostics.DLL。 日志:尝试下载新 URL file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET 文件/root/b117acb8/f2404402/Microsoft.WindowsAzure.Diagnostics/Microsoft.WindowsAzure.Diagnostics.DLL。 日志:尝试下载新 URL file:///F:/SVNProjects/myproject/SitePagesWebRole/bin/Microsoft.WindowsAzure.Diagnostics.DLL。 警告:比较程序集名称导致不匹配:轻微 版本 ERR:无法完成程序集设置 (hr = 0x80131040)。 探测终止。

堆栈跟踪: 在 System.RuntimeTypeHandle.GetTypeByName(字符串名称,布尔 throwOnError,布尔 ignoreCase,布尔反射, StackCrawlMarkHandle stackMark, Boolean loadTypeFromPartialName, ObjectHandleOnStack 类型) 在 System.RuntimeTypeHandle.GetTypeByName(字符串名称,布尔 throwOnError,布尔 ignoreCase,布尔反射, StackCrawlMark& stackMark,布尔型 loadTypeFromPartialName) 在 System.Type.GetType(字符串类型名称) 在 System.Diagnostics.TraceUtils.GetRuntimeObject(字符串类名,类型 baseType,字符串初始化数据) 在 System.Diagnostics.TypedElement.BaseGetRuntimeObject() 在 System.Diagnostics.ListenerElement.GetRuntimeObject() 在 System.Diagnostics.ListenerElementsCollection.GetRuntimeObject() 在 System.Diagnostics.TraceInternal.get_Listeners() 在 System.Diagnostics.TraceInternal.WriteLine(字符串消息) 在 F:\SVNProjects\myproject\GameLogic\GameAPI.cs:line 119 中的 myproject.GameAPI.Login(Int64 fbid, Int64[] friends)
内部异常:

如何解决?

【问题讨论】:

    标签: exception azure trace


    【解决方案1】:

    检查 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 是否被复制到 output/azure 包中。

    【讨论】:

      【解决方案3】:

      以上内容对我不起作用(我在所有地方都说 1.7),相反,我浏览了每个项目,删除并重新添加了任何以以下开头的引用:

      Microsoft.WindowsAzure.*
      

      当您重新添加它们时,请确保它显示的是 1.7 版。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-16
        • 2012-05-17
        • 2015-03-23
        • 1970-01-01
        • 2023-04-02
        • 1970-01-01
        相关资源
        最近更新 更多