Cố gắng bằng phương thức minh bạch bảo mật 'WebMatrix.WebData.PreApplicationStartCode.Start ()'


176

Cập nhật: tương tự cho mvc 4 đến mvc 5.

Tôi đã bắt đầu một dự án mvc 4 mới và di chuyển một dự án mvc 3 trong đó (bộ điều khiển / mô hình / tập lệnh, v.v.). Trong khi mọi thứ biên dịch bây giờ tôi nhận được lỗi sau:

Cố gắng bằng phương pháp minh bạch bảo mật 'WebMatrix.WebData.PreApplicationStartCode.Start ()' để truy cập phương thức bảo mật quan trọng 'System.Web.WebPages.Razor.WebPageRazorhost.AddGlobalImport (System.String)' không thành công.

Tôi không thể tìm thấy bất cứ điều gì trên web với lỗi này. Lỗi xảy ra trước khi vào ứng dụng bắt đầu.

Tôi đã thử cài đặt lại tất cả các hội đồng với nuget, không đặt web.config 'sạch'.

đã có ai gặp phải vấn đề này trước đó chưa?

Câu trả lời:


246

Đối với tôi lỗi này là do tôi KHÔNG cài đặt Microsoft.AspNet.WebHelpers sau khi cập nhật từ MVC 4 lên MVC 5. Nó đã được sửa bằng cách cài đặt gói NuGet

Install-Package -Id  Microsoft.AspNet.WebHelpers

1
Điều này đã giải quyết vấn đề cho tôi; nó đã tạo ra một số vấn đề về không gian tên với Resourceslớp của tôi , nhưng tôi đã thay đổi nó Properties.Resources.xxxxxvà các vấn đề đã được sửa.
Cody

2
Tôi đã chạy cái này và nó không hoạt động ... nhưng may mắn thay tôi đã thấy rằng trong một câu trả lời khác, có một lệnh thứ hai để chạy: stackoverflow.com/a/22587521/482256
Kevin Nelson

điều này đã giúp tôi nhưng tôi cũng cần những điều dưới đây trong các ràng buộc lắp ráp code<phụ thuộc> <assemblyIdentity name = "WebMatrix.WebData" publicKeyToken = "31bf3856ad364e35" văn hóa = "trung lập" /> <bindRedirect oldVersion = " "newVersion =" 3.0.0.0 "/> </ code
DepAssugging

Tôi cài đặt gói đã đề cập ở trên và vấn đề đã biến mất. Tôi đã sử dụng NUget UI để cài đặt nó và nó cũng đã cài đặt tất cả các phụ thuộc cho tôi
Atta H.

204

Nếu bạn nhận được lỗi

Cố gắng bằng phương pháp minh bạch bảo mật 'WebMatrix.WebData.PreApplicationStartCode.Start ()' để truy cập phương thức bảo mật quan trọng 'System.Web.WebPages.Razor.WebPageRazorhost.AddGlobalImport (System.String)' không thành công.

Để sửa lỗi cài đặt gói này bằng trình quản lý gói NuGet.

Install-Package Microsoft.AspNet.WebHelpers

Sau đó, có thể bạn sẽ gặp một lỗi khác

Không thể tải lắp ráp WebMatrix.Data phiên bản 3.0.0.0

để sửa lỗi cài đặt gói này bằng trình quản lý gói NuGet.

Install-Package Microsoft.AspNet.WebPages.Data

Tôi đã có lỗi chính xác này khi nâng cấp lên VS 2015 RTM. Cùng một mã chạy tốt với VS 2013, sự khác biệt duy nhất là một tệp .config mới mà 2015 tạo ra cho IIS mà tôi nghi ngờ IISExpress 2013 bỏ qua. Câu trả lời này cũng cố định trường hợp này, thêm cả hai nugets.
angensesen

Cần phải đề cập rằng tôi đã không thành công trong việc điều hành trang web của mình với VS2015 RTM. Cài đặt Microsoft.AspNet.WebHelpers đã sửa lỗi YSOD, nhưng sau đó tôi đã hết thời gian do một số quyền truy cập sql thay thế. Mã chính xác tương tự chạy tốt trong VS2013.
angensesen

1
Tôi đã gặp phải sự cố này khi sử dụng VS 2013 Express Edition khi nâng cấp từ ASP .NET MVC 4 lên ASP .NET MVC 5. Điều này rất hữu ích vì @Anushka đã nói vấn đề thứ hai với một giải pháp.
Jerameel Resco

Tôi gặp lỗi này khi tôi cố chạy giải pháp của mình trong VS 2015. Nó chạy hoàn toàn tốt trong VS 2013. Cài đặt 2 gói như đề xuất hoạt động nhưng tôi không chắc tại sao tôi cần cài đặt chúng. Tôi có các giải pháp khác mà tôi đã phát triển trong VS 2013 mà không gặp phải lỗi này trong VS 2015.
John81

2
Chúng tôi đã thấy rằng VS2015 quyết định đưa một số DLL WebMatrix vào thư mục bin của ứng dụng web trên trình biên dịch - VS2013 không làm điều đó. Tôi không biết năm 2015 sẽ lấy các DLL này từ đâu, nhưng chúng phải là một phiên bản khác với các DLL được tải từ GAC (tôi đoán) khi bạn khởi động ứng dụng được biên soạn bởi VS2013 mà không có WebMatrix DLLS bao gồm trong thư mục bin ứng dụng. Lưu ý rằng, nếu bạn xóa 4 tệp WebMatrix khỏi đầu ra 2015 và khởi động lại IIS, vấn đề sẽ biến mất.
Simon Green

19

Đối với bất kỳ ai hạ cánh ở đây đang cố gắng nâng cấp từ MVC 4 lên MVC5, tôi đã có thể giải quyết vấn đề này bằng cách làm theo các hướng dẫn tại http://www.asp.net/mvc/tutorials/mvc-5/how-to-upTHER -an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web-api-2 .

Tôi cũng đã phải cài đặt gói "Microsoft.AspNet.WebApi.Webhost" từ nuget. Nhưng kia là nó.

Ồ, và tôi đã phải tạo ứng dụng này Đặt: <add key="owin:AutomaticAppStartup" value="false" />

:)


14

Tôi đã thử tất cả các giải pháp trên và nó vẫn không hoạt động, cho đến khi tôi thấy rằng phần tử biên dịch web.config đang tham chiếu phiên bản 2.0.0.0 của WebMatrix.Data và WebMatrix.WebData. Việc thay đổi phiên bản của các mục trong web.config thành 3.0.0.0 đã giúp tôi.


10

Tôi đã phải vật lộn với một vấn đề tương tự khi nâng cấp mvc 4lên mvc 5:

Cố gắng bằng phương thức minh bạch bảo mật 'System.Web.WebPages.Adftime.SiteAdmin.RegisterAdminModule ()' để truy cập phương thức bảo mật quan trọng 'System.Web.WebPages.ApplicationPart..ctor (System.Reflection.Assugging, System.String)' không thành công.

Hộp kiểm xóa các tệp bổ sung trong hộp thoại xuất bản đã giải quyết nó cho tôi.


Tôi đã gặp lỗi này trong Ứng dụng được lưu trữ của Nhà cung cấp SharePoint 2013 (ASP.NET MVC 5, được triển khai lên Azure), "xóa các tệp bổ sung" trong hộp thoại xuất bản cũng đã giải quyết nó cho tôi.
Anatoly Mironov

8

Cài đặt lại Microsoft.AspNet.WebHelpershoạt động cho tôi

Update-Package reinstall Microsoft.AspNet.WebHelpers

6

Chỉ một gợi ý nữa ... Điều này được gây ra cho tôi bởi một số dll cũ từ một dự án MVC 3 sau khi nâng cấp lên MVC 5 trong thư mục bin trang web trên máy chủ triển khai. Mặc dù các dll này không còn được sử dụng bởi cơ sở mã mà chúng dường như gây ra vấn đề. Làm sạch tất cả và triển khai lại và nó vẫn ổn.


Đây là lý do lỗi của tôi. Tôi đã có các tập tin cũ và mới trong thư mục bin. cảm ơn
Abhinaw Sharma 7/07/2015

5

Bạn cũng có thể nhận được:

Không thể tải tệp hoặc tập hợp 'WebMatrix.Data, Phiên bản = 3.0.0.0, Culture = trung tính, PublicKeyToken = 31bf3856ad364e35' hoặc một trong các phụ thuộc của nó. Định nghĩa tệp kê khai của cụm lắp ráp không khớp với tham chiếu lắp ráp. (Ngoại lệ từ HRESULT: 0x80131040)

Điều này đã chuyển sang gói này

 Install-Package Microsoft.AspNet.WebPages.Data

Bạn có thể nên thực hiện một bản dựng sạch trước khi thử bất kỳ câu trả lời nào cho câu hỏi này và sau khi cập nhật các gói


3

Đây là cách tôi khắc phục vấn đề này:

Mở bảng điều khiển trình quản lý gói nuget và cài đặt các gói nuget bên dưới:

Install-Package WebMatrix.Data
Install-Package Microsoft.AspNet.WebHelpers
Update-Package

Làm sạch giải pháp, xây dựng lại và ứng dụng web asp.net của tôi bắt đầu hoạt động!


2

Xóa tất cả các tệp từ bin và sau đó xây dựng lại giải pháp làm việc cho tôi.


1

Đối với tôi, lỗi này là do DotNetOpenAuth không tương thích với MVC5 sau khi nâng cấp từ MVC4 lên MVC5. Gỡ cài đặt Microsoft.Web.WebPages.OAuth đã khắc phục sự cố.


1

Tôi đã xóa nó khỏi tài liệu tham khảo của mình. Sau đó chạy nó trong Gói quản lý gói

Install-Package WebMatrix.Data

Cuối cùng thêm lắp ráp WebMatrix.WebData vào tài liệu tham khảo và xây dựng lại dự án. Nó hoạt động với tôi. Tôi hy vọng nó cũng giải quyết được vấn đề của bạn.


0

Tôi đã cài đặt webapi với nó thông qua gói nuget helppages. Gói đó đã thay thế hầu hết các nhị phân asp.net mvc 4 bằng các phiên bản beta không hoạt động tốt cùng với phần còn lại của dự án. Khắc phục là khôi phục mvc 4 dll ban đầu và tất cả đều tốt.


0

Tôi gặp vấn đề tương tự, tôi đã phải cập nhật MVC Tương lai (Microsoft.AspNet.Mvc.Futures)

Install-Package Microsoft.AspNet.Mvc.Futures

0

Đối với tôi, lỗi này được giải quyết bằng cách thêm

<system.web>
 <trust level="Full">
 </system.web>

trong web.config

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.