You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法执行引用Microsoft.Rest.ClientRuntime的U-SQL作业,陷入死锁困境

解决U-SQL中引用Microsoft.Rest.ClientRuntime DLL的死锁问题

我之前也踩过U-SQL程序集引用的类似坑,给你几个可行的方向来突破这个僵局:

1. 先尝试用完整强名称引用系统程序集

别先认定它不属于系统程序集范畴,U-SQL的系统程序集列表可能比你预期的更全。试试在脚本开头用完整强名称引用:

REFERENCE SYSTEM ASSEMBLY [Microsoft.Rest.ClientRuntime, Version=2.3.20.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35];

如果执行不报错,说明只是之前用短名称导致识别失败,直接用这个方式就能解决。要是报错提示找不到系统程序集,再走下一步。

2. 作为自定义程序集上传引用

既然没法注册成系统程序集,那就把它当自定义程序集处理:

  • 第一步:把Microsoft.Rest.ClientRuntime.dll以及它的依赖DLL(比如匹配版本的Newtonsoft.Json.dll)上传到你的Azure Data Lake Storage(ADLS)或Azure Blob Storage的U-SQL工作区关联存储中。
  • 第二步:在U-SQL脚本里用REFERENCE ASSEMBLY引用,路径用存储的相对或绝对路径:
    REFERENCE ASSEMBLY @"/Assemblies/Microsoft.Rest.ClientRuntime.dll";
    REFERENCE ASSEMBLY @"/Assemblies/Newtonsoft.Json.dll"; -- 若有依赖需同时引用
    
  • 第三步:如果是代码后置(Code-Behind)的C#类,确保项目中已添加这些DLL的引用,并且设置复制到输出目录为始终复制,这样部署脚本时会自动同步到存储。

3. 检查版本兼容性

有时候问题出在DLL版本和U-SQL运行时不匹配,建议下载与U-SQL运行时(比如Azure Data Lake Analytics的运行时版本)兼容的Microsoft.Rest.ClientRuntime版本,优先选择.NET Framework 4.6.1兼容的版本——因为U-SQL是基于.NET Framework运行的。

4. 验证代码后置的引用配置

如果是代码后置类出现问题,要确认:

  • 没有在using语句里引用不存在的命名空间;
  • 脚本中已正确关联代码后置编译生成的程序集:
    REFERENCE ASSEMBLY @"/Assemblies/MyCodeBehindAssembly.dll";
    

内容的提问来源于stack exchange,提问作者Jorge Ribeiro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:08:10