Azure:无法加载文件或程序集'Microsoft.ServiceBus

时间:2010-10-04 21:36:19

标签: azure azureservicebus

我有一个我要测试的应用结构服务。 (http://xxx.cloudapp.net:8081/service.svc)。
我创建了一个控制台应用程序并添加了服务的服务引用,并出现以下错误:

  

无法加载文件或程序集   “Microsoft.ServiceBus,   版本= 1.0.0.0,文化=中立,   PublicKeyToken = 31bf3856ad364e35'或   其中一个依赖项。系统   找不到指定的文件。

我在C:\ Program Files(x86)\ Windows Azure平台AppFabric SDK \ V1.0 \ Assemblies \ NET4.0中添加了对Microsoft.ServiceBus的引用

我将项目中的所有程序集设置为Copy Local = True,如下所示: http://msdn.microsoft.com/en-us/library/ee706702.aspx

额外的尽职调查: 我在red-gate的反射器中打开了Microsoft.ServiceBus并确认它是正确的版本。仅仅为了踢,我还添加了对反射器中引用的每个程序集的引用,并将所有引用设置为copy local = true。

还有其他想法吗?

...彼得

3 个答案:

答案 0 :(得分:4)

确保将“目标框架”(“项目属性/应用程序”选项卡)从“.NET Framework 4 Client Profile”更改为“.NET Framework 4”。 我发现了一个类似的帖子,这对我有帮助。 我相信,.NET 4的客户端配置文件不支持Microsoft.ServiceBus这一事实。

答案 1 :(得分:3)

当您引用Microsoft.ServiceBus.dll时,请从安装位置引用它,例如

  

C:\ Program Files(x86)\ Windows Azure   平台AppFabric
  SDK \ V1.0 \装配\ NET4.0 \ Microsoft.ServiceBus.dll

...不是来自GAC,并将Copy Local设置为true。

您需要在部署到Azure中的任何内容中执行此操作; Microsoft.ServiceBus.dll需要与您的项目一起打包,因为它在Azure中默认不可用。

如果您启动Fiddler,则在调用服务时会看到500错误。这证明异常不在您的调用应用程序中。

答案 2 :(得分:1)

Azure框上未安装ServiceBus dll

  1. 确保您对程序集的引用指定了COPY LOCAL
  2. 另外请确保您没有在上部项目中引用不复制本地的服务总线dll(如果您已经验证了上述1,则可能是您的问题)
  3. 您可以检查Azure文件夹的CSX树,以查看是否正在将程序集复制到最终包中。这比上传到azure或启动开发结构快得多。

    这应该可以解决你的问题