2012-01-17 41 views
5

Tôi có giải pháp với các dự án khác nhau trong đó, Một dự án là dự án MVC 3 và dự án kia là dự án thử nghiệm.Không thể tải tệp hoặc lắp ráp 'System.Web.Mvc

Từ dự án thử nghiệm, tôi đang cố gắng kiểm tra hành vi của trình điều khiển của mình. Nhưng khi tôi chạy thử nghiệm, hệ thống sẽ báo lỗi cho tôi biết điều này:

System.IO.FileNotFoundException: Không thể tải tệp hoặc lắp ráp 'System.Web.Mvc, Version = 1.0.0.0, Culture = trung lập, PublicKeyToken = 31bf3856ad364e35 'hoặc một trong các phụ thuộc của nó. Hệ thống không thể tìm thấy các tập tin được chỉ định.
WRN: hội ràng buộc khai thác gỗ được bật OFF.To cho phép lắp ráp bind thất bại đăng nhập, thiết lập giá trị registry [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) để 1.

Mã từ thử nghiệm hệ điều hành sau:

[TestMethod] 
public void TestMethod() 
{ 
    var myService = new Mock<IMyService>(); 
    myService.Setup(a => a.ReadAuthorizationRequest()) 
     .Returns<EndUserAuthorizationRequest>(null); 
    int error = 0; 
    var controller = new myController(myService.Object); 

    try 
    { 
     var actionResult = controller.Authorize(); 
    } 
    catch (HttpException exception) 
    { 
     error = exception.GetHttpCode(); 
    } 
    Assert.AreEqual(403, error); 
} 

bộ điều khiển:

public class myController: Controller 
{ 
    private readonly IMyService _service; 

    public OAuthController(IMyService service) 
    { 
     _service = service; 
    } 

    [Authorize, AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)] 
    public ActionResult Authorize() 
    { 
     ClientApplication requestingClient; 
     var request = _service.ReadAuthorizationRequest(); 
     if (request == null) 
     { 
      throw new HttpException((int) HttpStatusCode.BadRequest, 
       "Missing authorization request."); 
     } 
    } 
} 

Như bạn có thể thấy, bất cứ khi nào dịch vụ không đọc yêu cầu, bộ điều khiển phải ném một httpException với httpStatusCode 403.

Điều gì là sai với điều này. Cảm ơn bạn trước.

Trả lời

12

Từ ngoại lệ của bạn:

System.IO.FileNotFoundException: Không thể tải tập tin hoặc lắp ráp 'System.Web.Mvc, Version = 1.0.0.0

Nó đang cố gắng tải MVC phiên bản 1. Bạn có thể cần phải thực hiện chuyển hướng ràng buộc lắp ráp trong dự án thử nghiệm của mình, giống như trong web.config:

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
     <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 

Đặt mã trong số configuration phần của app.config của hội đồng kiểm tra của bạn.

1

Hoặc bạn có thể thêm tham chiếu đến phiên bản dll chính xác trong dự án thử nghiệm.

2

Tôi đã gặp lỗi tương tự sau khi cài đặt VS 2012, không có dự án nào trong giải pháp của tôi tham chiếu đến System.Web.Mvc. Vấn đề đã được giải quyết cho tôi khi tôi thêm System.Web.Mvc.dll vào GAC.

Sau đây là các bước tôi đã làm:

  1. Tải System.Web.Mvc tập tin dll 1.0.
  2. Bấm Bắt đầu, bấm Tất cả chương trình, bấm Visual Studio, bấm Công cụ Visual Studio, rồi bấm Dấu nhắc lệnh Visual Studio.
  3. Gõ vào như sau: gacutil -Tôi {thư mục nơi bạn đã tải về các System.Web.Mvc.dll} ví dụ C: \ Users \ Tên của bạn \ Desktop \ System.Web.Mvc.dll

tôi hi vọng điêu nay co ich.

1

Trong trường hợp bất cứ ai đang tìm kiếm một giải pháp cho vấn đề này trong Visual Studio 2012, trang web này đã giúp tôi ra:

http://www.yeronimo.nl/post/2013/03/27/Error-1-Referencesvcmap-Could-not-load-file-or-assembly-xxxxxxx-etc

(thêm: http://www.christowles.com/2012/08/could-not-load-file-or-assembly.html)

Nhấp chuột phải vào các trang web tham khảo dịch vụ (Reference.svcmap) trong trình thám hiểm giải pháp dự án (trong App_WebReferences> [Tên dịch vụ web của bạn]> Reference.svcmap) và nhấp vào "Định cấu hình tham chiếu dịch vụ ...", sau đó bỏ chọn hộp kiểm có nội dung "Sử dụng lại các loại được tham chiếu hội đồng ".

Nhấp vào OK, sau đó xây dựng lại dự án! Nó làm việc cho tôi!

Các vấn đề liên quan