天蓝色:无法加载文件或程序集“Microsoft.ServiceBus”
-
27-09-2019 - |
题
我有一个想要测试的应用程序结构服务。(http://xxx.cloudapp.net:8081/service.svc).
我创建了一个控制台应用程序并向该服务添加了服务引用,但出现以下错误:
无法加载文件或汇编'Microsoft.ServiceBus,版本= 1.0.0.0,culture =中性,publicKeyToken = 31bf3856ad364e35'或其依赖项之一。该系统找不到指定的文件。
我从 C:\Program Files (x86)\Windows Azure platform AppFabric SDK\V1.0\Assemblies ET4.0 添加了对 Microsoft.ServiceBus 的引用
我将项目中的所有程序集设置为 Copy Local = True,如下所示:http://msdn.microsoft.com/en-us/library/ee706702.aspx
额外的尽职调查:我在red-gate的反射器中打开Microsoft.ServiceBus并确认它是正确的版本。只是为了好玩,我还添加了对反射器中引用的每个程序集的引用,并将所有引用设置为 copy local = true。
还有其他想法吗?
…彼得
解决方案
当您引用Microsoft.ServiceBus.dll,从安装位置引用它,例如
C:\程序文件(x86)\ Windows Azure的 平台AppFabric的结果 SDK \ V1.0 \装配\ NET4.0 \ Microsoft.ServiceBus.dll
...不是从GAC,并设置复制本地为true。
您需要做的这一切要部署到Azure的;在Microsoft.ServiceBus.dll需要与你的项目打包的,因为它不是默认情况下可用在Azure上。
如果你火了小提琴手,你会看到一个500错误调用该服务时。这证明,例外是不是在你的调用应用程序。
其他提示
请确保您为” .NET框架4' ,.NET Framework 4的客户端配置文件“更改目标框架(项目属性/应用程序选项卡)。 我发现了一个类似的帖子,那是什么帮助了我。 我相信它具有与以下事实Microsoft.ServiceBus不是由.NET 4的客户端配置文件支持。
Azure 盒子上未安装 ServiceBus dll
- 确保对程序集的引用指定 COPY LOCAL
- 还要确保您在上层项目中没有对服务总线 dll 的引用,这些项目不会复制到本地(如果您已经验证了上面的 1,这可能是您的问题)
您可以检查 azure 构建文件夹的 CSX 树,以查看程序集是否被复制到最终包中。这比上传到 azure 或启动开发结构要快得多。
这应该可以解决你的问题