2

我有一个使用 mongodb 工作角色的 Azure 云项目。在本地模拟器中运行时一切正常,但是当我部署到 Azure 暂存区时,mongodb 工作人员角色卡在循环中并显示 System.IO.FileNotFoundException。我远程连接到其中一台虚拟机并查看事件查看器,发现以下错误:

发生未处理的异常。类型:System.IO.FileNotFoundException 进程 ID:1936 进程名称:WaWorkerHost 线程 ID:4 AppDomain 角色 MongoDB.WindowsAzure.MongoDBRole_IN_0 的未处理异常异常:无法加载文件或程序集'mswacdmi,版本 = 1.7.0.0,文化 = 中性, PublicKeyToken=31bf3856ad364e35' 或其依赖项之一。该系统找不到指定的文件。在 Microsoft.WindowsAzure.StorageClient.CloudDrive..ctor(Uri uri, StorageCredentials credentials) 在 Microsoft.WindowsAzure.StorageClient.CloudStorageAccountCloudDriveExtensions.CreateCloudDrive(CloudStorageAccount storageAccount, String pageBlobUri) 在 MongoDB.WindowsAzure.MongoDBRole.Utilities.GetMountedPathFromBlob(String localCachePath, String cloudDir,字符串 containerName,字符串 blobName,Int32 driveSize,

为什么这在本地工作而不是在 Azure 上工作?我对装配等不太了解,但我正在学习。网上建议的一件事是检查引用程序集的属性并将“复制本地”设置为真,我已经尝试过,但仍然是同样的错误。

4

1 回答 1

1

在您的辅助角色项目中,确保您有一个 .NET 引用,mswacdmi.dll其中属性集Copy Local=true。发布时 - RDP 到您的 Azure 角色实例,以验证您部署的角色在/bin目录中是否具有程序集。

还要确保您的目标是 x64 - 我mswacdmi.dll在这条路径上找到(Azure SDK 1.8):

C:\Program Files\Microsoft SDKs\Windows Azure.NET SDK\2012-10\bin\runtimes\storage\cloud\x64

于 2013-02-22T15:00:28.680 回答