2013-08-27 27 views
16

Tôi đã tạo một giải pháp với hai dự án: MVC 4 và Thư viện lớp. Sau đó tôi cài đặt gói 'Microsoft.AspNet.WebApi.OData -pre để kéo vào chức năng OData WebApi. Khi tôi làm vậy, tôi gặp lỗi sau khi chạy:Làm cách nào để giải quyết lỗi "Cố gắng bằng phương pháp bảo mật trong suốt 'System.Web.Http.GlobalConfiguration.get_Configuration()

Cố gắng bằng phương pháp minh bạch bảo mật' System.Web.Http .GlobalConfiguration.get_Configuration() 'để truy cập loại bảo mật quan trọng' System.Web.Http.HttpConfiguration 'không thành công.

Khi WebApiConfig.Register (GlobalConfiguration.Configuration) chạy trong Global.asax

Sau khi thực hiện, việc gỡ cài đặt gói dường như không khắc phục được. Nó loại bỏ các thành phần OData rõ ràng, nhưng sau đó lá bất cứ điều gì lắp ráp đang gây ra điều này. loại bỏ với -RemoveDependencies loại bỏ tất cả các tài liệu tham khảo WebApi trong thư viện, và tôi không thể làm cho nó trở lại trong trạng thái làm việc.

Tôi đang ở trong gói nào và làm cách nào để bật ODA WebApi trong ứng dụng vani MVC4?

Trả lời

12

Nếu bạn tạo một ứng dụng MVC 4 từ mẫu của nó, sau đó bạn đang cài đặt Web API 4.0. nếu bạn sử dụng

install-package 'Microsoft.AspNet.WebApi.OData -pre 

Bạn sẽ phụ thuộc vào ASP.NET Web API 5.0 rc.

Đề xuất của tôi là sử dụng mẫu "Ứng dụng web ASP.NET trống" thay vì mẫu MVC 4.0.

+5

Điều này đặt tôi đi đúng hướng. Tôi đã kết thúc cài đặt Microsoft.AspNet.WebApi -Pre-Package và nó đã được hạnh phúc. – Daniel

+0

@Daniel vui mừng khi thấy nó hoạt động. – Aliostad

+1

Có lỗi tương tự sau khi cài đặt 'Microsoft.AspNet.WebApi.Cors' trên mẫu API Web VS2012 và chỉnh sửa' WebApiConfig.Register'. Sau khi nâng cấp lên mẫu VS2013 tất cả đều hoạt động bình thường. –

3

Bạn có cần phiên bản API API web phát hành trước không? Nếu vậy, bạn cần phải cập nhật tất cả các gói API web khác để phù hợp với phiên bản đó. Nếu không, chỉ cần làm,

install-package 'Microsoft.AspNet.WebApi.OData 

mà không có sự lựa chọn -pre

19

Đó là sự không khớp trên các hội đồng cho phiên bản WebAPI đã cho. Tôi đã thất bại vì tôi đã tham khảo một phiên bản không khớp của System.Web.Http.WebHost. Vì vậy, bạn có thể ...

  1. Cài đặt WebAPI mới nhất từ ​​NuGet

    -HOẶC-

  2. Đảm bảo tất cả Microsoft.AspNet.WebApi.* gói của bạn đang ở trên cùng một phiên bản

8

tôi chạy "update-package Microsoft.AspNet.WebApi" trong Package Manager Console trong VS và làm việc như một sự quyến rũ.

+0

cảm ơn cũng đã làm việc cho tôi –

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