2012-08-14 48 views
6

Tôi đang cố gắng sử dụng Windows Azure Caching Preview.Không thể tải tệp hoặc lắp ráp Microsoft.ApplicationServer.Caching.Core

Tôi có một vai trò người lao động bộ nhớ cache chuyên dụng, Một webrole sử dụng bộ nhớ cache cũ và một vai trò công nhân liên tục cập nhật bộ nhớ cache.

Tôi làm theo các instructions on the Windows Azure guide nhưng tôi vẫn nhận được một lỗi:

Không thể tải tập tin hoặc lắp ráp 'Microsoft.ApplicationServer.Caching.Core, Version = 1.0.0.0, Culture = trung tính, PublicKeyToken = 31bf3856ad364e35' hoặc một trong những phụ thuộc của nó. Định nghĩa tệp kê khai của assembly được đặt không khớp với tham chiếu assembly. (Ngoại lệ từ HRESULT: 0x80131040)

Tôi phụ thuộc kiểm tra gấp đôi gấp 1000000, có chính xác. Tôi nhận thấy có hai bộ dll: những phiên bản 1.0.0.0 tôi muốn sử dụng và một phiên bản khác 101.0.0.0 tôi không muốn. Tôi đã thêm BindingRedirect tuyên bố vào tất cả các tệp .config của tôi để ánh xạ 101 phiên bản lên 1.0.0.0 Tôi đã kiểm tra thư mục \ bin, giải nén các tệp bằng Jetbrains, chúng đúng. Tôi bắt đầu mất kiên nhẫn. Tại sao không .NET lấy DLL tôi chỉ định khi tôi đặt đường dẫn rõ ràng?

+0

Ok, wai duy nhất tôi tìm thấy để giải quyết vấn đề này: Tìm kiếm tất cả các tài liệu tham khảo của các dll trên ổ cứng của tôi và thay thế bằng bản sao chính xác. –

Trả lời

2

Ok tôi đã tìm thấy một cách khác: Tôi vừa đổi tên C: \ Program Files \ Microsoft SDKs \ Windows Azure.NET SDK \ 2012-06 \ ref \ Microsoft.ApplicationServer.Caching.Core.dll thành Microsoft.ApplicationServer.Caching .Core.dll_old.

Đó là đủ cho tôi.

Dưới đây là mô tả cụ thể hơn về vấn đề thứ: có vẻ như hoạt động hoàn hảo khi thực hiện các dự án riêng lẻ: Tôi có 3 vai trò công nhân và một vai trò web. Mỗi khi tôi xây dựng dự án của tôi từng cái một, tôi thấy dll đúng trong thư mục đầu ra, tôi chỉ gặp vấn đề với gói Windows Azure Cloud, có vẻ như bỏ qua chỉ thị BindingRedirect.

+0

Vui lòng chọn câu trả lời của bạn dưới dạng * câu trả lời * (như http://meta.stackexchange.com/a/65088/173356), nó sẽ không liệt kê câu hỏi này nữa trong số các câu hỏi chưa được trả lời. – Seki

1

Chỉ là đề xuất để lưu trữ ở vị trí thích hợp.

Tôi đã gặp phải sự cố được mô tả trong nhiệm vụ, chỉ khác biệt là nó không thể tìm thấy Caching.Client thay vì Caching.Core. Tôi đã cố gắng loại bỏ các thư viện trong thư mục SDK ref, như đề xuất trong câu trả lời trước đó, nhưng nó đã không giúp đỡ.

Dù sao, giải pháp của tôi dường như khá cụ thể.

Điều gì đã giúp trong trường hợp của tôi là tôi tìm thấy một số thư viện không được tham chiếu, nhưng chúng được tìm thấy trong các gói trong môi trường duy nhất nơi dự án của tôi hoạt động. Dưới đây là: * System.Web.Providers.1.1 * System.Web.Providers.Core.1.0

Chúng bị mất trong tệp packages.config vì lý do nào đó, do đó chúng không thể được gia hạn từ nguồn cấp dữ liệu nuget. Vì vậy, bạn có thể thử tham chiếu chúng trực tiếp hoặc cách khác để làm cho chúng có thể truy cập được vào dự án bạn đang cố chạy.

1

AppFabric không được thiết lập để đăng ký các tệp DLL riêng sau khi cài đặt.

Bạn phải đăng ký thủ công chúng. Run này trong PowerShell để sửa chữa tất cả mọi thứ:

Set-location "C:\Program Files\AppFabric 1.1 for Windows Server"    
[System.Reflection.Assembly]::Load("System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")    
$publish = New-Object System.EnterpriseServices.Internal.Publish    
$publish.GacInstall("C:\Program Files\AppFabric 1.1 for Windows Server\Microsoft.ApplicationServer.Caching.Core.dll") 
$publish.GacInstall("C:\Program Files\AppFabric 1.1 for Windows Server\Microsoft.ApplicationServer.Caching.Client.dll") 
$publish.GacInstall("C:\Program Files\AppFabric 1.1 for Windows Server\Microsoft.WindowsFabric.Common.dll") 
$publish.GacInstall("C:\Program Files\AppFabric 1.1 for Windows Server\Microsoft.WindowsFabric.Data.Common.dll")    
iisreset 
Các vấn đề liên quan