5

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

无法加载文件或程序集 'Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 或其依赖项之一。该系统找不到指定的文件。

我从 C:\Program Files (x86)\Windows Azure platform 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。

还有其他想法吗?

…彼得

4

3 回答 3

4

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

于 2010-11-29T14:29:38.807 回答
3

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

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

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

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

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

于 2010-10-07T14:38:56.983 回答
1

Azure 盒子上未安装 ServiceBus dll

  1. 确保您对程序集的引用指定了 COPY LOCAL
  2. 还要确保在不复制本地的上层项目中没有对服务总线 dll 的引用(如果您已经验证了上面的 1,这可能是您的问题)

您可以检查 azure build 文件夹的 CSX 树,以查看程序集是否正在复制到最终包中。这比上传到 azure 或启动开发结构要快得多。

那应该可以解决您的问题

于 2010-10-05T07:48:08.103 回答