พยายามด้วยวิธีการรักษาความปลอดภัยที่โปร่งใส 'WebMatrix.WebData.PreApplicationStartCode.Start ()'


176

อัปเดต: เหมือนกันสำหรับ mvc 4 ถึง mvc 5

ฉันเริ่มโครงการ mvc 4 ใหม่และย้ายโครงการ mvc 3 ในนั้น (ตัวควบคุม / รุ่น / สคริปต์ ฯลฯ ) ในขณะที่ทุกอย่างรวบรวมตอนนี้ฉันได้รับข้อผิดพลาดดังต่อไปนี้:

ความพยายามโดยวิธีการรักษาความปลอดภัยที่โปร่งใส 'WebMatrix.WebData.PreApplicationStartCode.Start ()' เพื่อเข้าถึงวิธีการรักษาความปลอดภัยที่สำคัญ 'System.Web.WebPages.Razor.WebPageRazorHost.AddGlobalImport (System.String)' ล้มเหลว

ฉันไม่พบสิ่งใดบนเว็บที่มีข้อผิดพลาดนี้ ข้อผิดพลาดเกิดขึ้นก่อนเริ่มแอปพลิเคชัน

ฉันลองติดตั้งชุดประกอบทั้งหมดด้วย nuget โดยวาง web.config ที่ 'สะอาด' เพื่อประโยชน์

ใครเคยมีปัญหานี้มาก่อนหรือไม่

คำตอบ:


246

สำหรับฉันข้อผิดพลาดนี้เป็นเพราะฉันไม่ได้ติดตั้ง Microsoft.AspNet.WebHelpers หลังจากอัปเดตจาก MVC 4 เป็น MVC 5 มันได้รับการแก้ไขโดยการติดตั้งแพคเกจ NuGet

Install-Package -Id  Microsoft.AspNet.WebHelpers

1
วิธีนี้แก้ไขปัญหาสำหรับฉัน มันสร้างปัญหาเนมสเปซบางอย่างกับResourcesชั้นเรียนของฉันแต่ฉันเปลี่ยนเป็นProperties.Resources.xxxxxและปัญหาได้รับการแก้ไข
โคดี้

2
ฉันวิ่งและมันใช้งานไม่ได้ ... แต่โชคดีที่ฉันเห็นว่าในคำตอบอื่นมีคำสั่งที่สองให้เรียกใช้: stackoverflow.com/a/22587521/482256
Kevin Nelson

fxed นี้สำหรับฉัน แต่ฉันยังต้องการด้านล่างในการผูกการชุมนุมcode<drantsAssembly> <assemblyIdentity name = "WebMatrix.WebData" publicKeyToken "publicKeyToken =" 31bf3856ad364e35 "วัฒนธรรม =" เป็นกลาง "/> <bindingRedirect oldVersion =" 0.0.0.0-3.0.0 "newVersion =" 3.0.0.0 "/> </ code
d

ฉันติดตั้งแพคเกจดังกล่าวข้างต้นและปัญหาหายไป ผมใช้ NUget UI ที่จะติดตั้งและที่ยังติดตั้งการอ้างอิงทั้งหมดสำหรับฉัน
เก่งเอช

204

หากคุณได้รับข้อผิดพลาด

ความพยายามโดยวิธีการรักษาความปลอดภัยที่โปร่งใส 'WebMatrix.WebData.PreApplicationStartCode.Start ()' เพื่อเข้าถึงวิธีการรักษาความปลอดภัยที่สำคัญ 'System.Web.WebPages.Razor.WebPageRazorHost.AddGlobalImport (System.String)' ล้มเหลว

เพื่อแก้ไขการติดตั้งแพคเกจนี้โดยใช้ NuGet ผู้จัดการแพคเกจ

Install-Package Microsoft.AspNet.WebHelpers

หลังจากนั้นคุณอาจได้รับข้อผิดพลาดอีกครั้ง

ไม่สามารถโหลดชุดประกอบ WebMatrix.Data รุ่น 3.0.0.0

เพื่อแก้ไขการติดตั้งแพคเกจนี้โดยใช้ NuGet package manager

Install-Package Microsoft.AspNet.WebPages.Data

ฉันมีข้อผิดพลาดที่แน่นอนนี้เมื่ออัปเกรดเป็น VS 2015 RTM รหัสเดียวกันทำงานได้ดีกับ VS 2013 ความแตกต่างเพียงอย่างเดียวคือไฟล์. config ใหม่ที่ 2015 สร้างขึ้นสำหรับ IIS ที่ฉันสงสัยว่า 2013 IIS Express จะไม่สนใจ คำตอบนี้แก้ไขกรณีนี้ด้วยเพิ่มทั้งสองนักเก็ต
angularsen

ควรกล่าวว่าฉันไม่ประสบความสำเร็จในการใช้งานเว็บไซต์ด้วย VS2015 RTM เลย การติดตั้ง Microsoft.AspNet.WebHelpers จะแก้ไข YSOD แต่ฉันหมดเวลาเนื่องจากมีสิทธิ์การเข้าถึง sql แทน รหัสเดียวกันแน่นอนวิ่งได้ดีใน VS2013
angularsen

1
ฉันพบปัญหานี้โดยใช้ VS 2013 Express Edition เมื่ออัปเกรดจาก ASP .NET MVC 4 เป็น ASP .NET MVC 5 สิ่งนี้มีประโยชน์เนื่องจาก @Anushka บอกปัญหาที่สองด้วยวิธีแก้ปัญหา
Jerameel Resco

ฉันได้รับข้อผิดพลาดนี้เมื่อฉันพยายามเรียกใช้โซลูชันของฉันใน VS 2015 มันทำงานได้อย่างสมบูรณ์แบบใน VS 2013 การติดตั้ง 2 แพคเกจตามที่แนะนำทำงาน แต่ฉันไม่แน่ใจว่าทำไมฉันต้องติดตั้ง ฉันมีวิธีแก้ไขปัญหาอื่น ๆ ที่ฉันพัฒนาใน VS 2013 ที่ไม่ได้รับข้อผิดพลาดนี้ใน VS 2015
John81

2
เราพบว่า VS2015 ตัดสินใจที่จะวางบาง WebMatrix DLLs ในไดเรกทอรี bin ของ webapp ในการรวบรวม - VS2013 ไม่ได้ทำเช่นนั้น ฉันไม่ทราบว่า 2015 กำลังรับ DLLs เหล่านี้จากที่ไหน แต่จะต้องเป็นเวอร์ชั่นอื่นกับ DLLs ที่โหลดเข้ามาจาก GAC (ฉันเดา) เมื่อคุณเริ่มแอปที่รวบรวมโดย VS2013 โดยไม่มี WebMatrix DLLS อย่างชัดเจน รวมอยู่ในไดเรกทอรีช่องเก็บแอพ โปรดทราบว่าหากคุณลบไฟล์ 4 WebMatrix ออกจากเอาต์พุตปี 2558 และรีสตาร์ท IIS ปัญหาจะหายไป
Simon Green

19

สำหรับผู้ที่ลงจอดที่นี่ซึ่งพยายามอัพเกรดจาก MVC 4 เป็น MVC5 ฉันสามารถแก้ไขปัญหานี้ได้โดยทำตามคำแนะนำที่http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade โครงสร้าง-aspnet-MVC-4 และเว็บ API โครงการเพื่อ aspnet-MVC-5 และเว็บ API-2

ฉันยังต้องติดตั้งแพ็คเกจ "Microsoft.AspNet.WebApi.WebHost" จาก nuget แต่นั่นมัน

โอ้และฉันต้องสร้างแอปนี้การตั้งค่า: <add key="owin:AutomaticAppStartup" value="false" />

:)


14

ฉันลองใช้วิธีแก้ไขปัญหาทั้งหมดข้างต้นแล้ว แต่ก็ยังใช้งานไม่ได้จนกว่าฉันจะพบว่าองค์ประกอบการรวบรวม web.config อ้างอิงเวอร์ชัน 2.0.0.0 ของ WebMatrix.Data และ WebMatrix.WebData การเปลี่ยนเวอร์ชันของรายการเหล่านั้นใน web.config เป็น 3.0.0.0 ช่วยฉันได้


10

ฉันได้รับการดิ้นรนกับปัญหาที่คล้ายกันเมื่ออัพเกรดmvc 4เป็นmvc 5:

ความพยายามโดยวิธีการที่โปร่งใสด้านความปลอดภัย 'System.Web.WebPages.Administrator.SiteAdmin.RegisterAdminModule ()' เพื่อเข้าถึงวิธีการรักษาความปลอดภัยที่สำคัญ 'System.Web.WebPages.ApplicationPart..ctor (System.Reflection.Assembly, System.String)' ล้มเหลว

ช่องทำเครื่องหมายลบไฟล์พิเศษในไดอะล็อกการเผยแพร่แก้ไขให้ฉัน


ฉันมีข้อผิดพลาดนี้ในแอปที่โฮสต์ของผู้ให้บริการ SharePoint 2013 (ASP.NET MVC 5, ปรับใช้กับ Azure), "ลบไฟล์เพิ่มเติม" ในกล่องโต้ตอบการเผยแพร่แก้ไขให้ฉันด้วย
Anatoly Mironov


6

อีกหนึ่งข้อเสนอแนะ ... นี่เกิดจากฉันโดย dll เก่าบางตัวจากโครงการ MVC 3 หลังจากอัปเกรดเป็น MVC 5 ในโฟลเดอร์ช่องเก็บของไซต์บนเซิร์ฟเวอร์การปรับใช้ แม้ว่า dll เหล่านี้จะไม่ถูกใช้โดยฐานรหัสอีกต่อไป แต่ดูเหมือนว่าจะทำให้เกิดปัญหา ทำความสะอาดหมดแล้วนำไปใช้ใหม่และมันก็ใช้ได้


นี่คือสาเหตุของข้อผิดพลาดของฉัน ฉันมีไฟล์เก่าและไฟล์ใหม่ในโฟลเดอร์ bin ขอบคุณ
Abhinaw Sharma

5

คุณอาจได้รับ:

ไม่สามารถโหลดไฟล์หรือชุดประกอบ 'WebMatrix.Data, Version = 3.0.0.0, วัฒนธรรม = เป็นกลาง, PublicKeyToken = 31bf3856ad364e35' หรือการอ้างอิงอย่างใดอย่างหนึ่ง คำจำกัดความรายการของชุดประกอบที่อยู่ไม่ตรงกับการอ้างอิงชุดประกอบ (ข้อยกเว้นจาก HRESULT: 0x80131040)

นี่ย้ายไปที่แพ็คเกจนี้

 Install-Package Microsoft.AspNet.WebPages.Data

คุณควรทำบิลด์ให้สะอาดก่อนที่จะลองตอบคำถามใด ๆ กับคำถามนี้และหลังจากอัพเดทแพ็คเกจ


3

นี่คือวิธีที่ฉันแก้ไขปัญหานี้:

เปิดคอนโซลตัวจัดการแพคเกจ nuget และติดตั้งแพคเกจ nuget ด้านล่าง:

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

ทำความสะอาดโซลูชันสร้างใหม่และแอปเว็บ asp.net ของฉันเริ่มทำงาน!


2

การลบไฟล์ทั้งหมดออกจาก bin และสร้างโซลูชันขึ้นมาใหม่สำหรับฉัน


1

สำหรับฉันข้อผิดพลาดนี้เกิดจาก DotNetOpenAuth ไม่เข้ากันได้กับ MVC5 หลังจากอัปเกรดจาก MVC4 เป็น MVC5 การถอนการติดตั้ง Microsoft.Web.WebPages.OAuth ช่วยแก้ไขปัญหา


1

ฉันได้ลบมันออกจากข้อมูลอ้างอิงของฉันจากนั้นเรียกใช้งานใน Package Manager Console

Install-Package WebMatrix.Data

ในที่สุดเพิ่มแอสเซมบลี WebMatrix.WebData ไปยังการอ้างอิงและสร้างโครงการใหม่ทำงานได้ดีสำหรับฉันฉันหวังว่ามันจะช่วยแก้ปัญหาของคุณได้เช่นกัน


0

ฉันติดตั้ง webapi ด้วยมันผ่านแพคเกจ nuget ของ helppages แพ็คเกจดังกล่าวแทนที่ asp.net mvc 4 ไบนารีส่วนใหญ่ด้วยรุ่นเบต้าซึ่งทำงานได้ไม่ดีพร้อมกับส่วนที่เหลือของโครงการ แก้ไขคือการคืนค่า mvc 4 dll ดั้งเดิมและทั้งหมดนั้นดี


0

ฉันมีปัญหาเดียวกันฉันต้องอัปเดต MVC Future (Microsoft.AspNet.Mvc.Futures)

Install-Package Microsoft.AspNet.Mvc.Futures

0

สำหรับฉันข้อผิดพลาดนี้แก้ไขได้โดยการเพิ่ม

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

ใน web.config

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.