[英]Attempt by security transparent method 'system.web.mvc.preapplicationStartcode.start' to access security critcal method.. failed
[英]Attempt by security transparent method 'Microsoft.Web.Helpers.PreApplicationStartCode.Start()' to access security critical method
我的解決方案中有兩個MVC網站,轉換為MVC5。 對於特定測試,我需要兩個站點都在運行,因為一個站點通過Web API與另一個站點進行通信。 他們正在使用IIS Express運行。
當我在Visual Studio(2012)中啟動其中一個並訪問已啟動的一個時,一切正常。 當我嘗試訪問另一個時,我有以下消息:
嘗試通過安全透明方法'Microsoft.Web.Helpers.PreApplicationStartCode.Start()'來訪問安全關鍵方法'System.Web.WebPages.Razor.WebPageRazorHost.AddGlobalImport(System.String)'失敗。
正如其他答案所建議的那樣,我更新了我的所有軟件包,並從其中一個軟件包中卸載了DotNetOpenAuth
軟件包,沒有結果。
這是站點#1的package.config
:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="AntiXSS" version="4.2.1" targetFramework="net45" />
<package id="Antlr" version="3.4.1.9004" targetFramework="net45" />
<package id="BeginCollectionItem" version="1.2.1.0" targetFramework="net45" />
<package id="Code52.i18n.MVC4" version="0.2.8" targetFramework="net45" />
<package id="CSS-Filters-Polyfill" version="1.0.0" targetFramework="net45" />
<package id="DotNet.Highcharts" version="2.0" targetFramework="net45" />
<package id="DotNetOpenAuth.AspNet" version="4.3.4.13329" targetFramework="net45" />
<package id="DotNetOpenAuth.Core" version="4.3.4.13329" targetFramework="net45" />
<package id="DotNetOpenAuth.OAuth.Consumer" version="4.3.4.13329" targetFramework="net45" />
<package id="DotNetOpenAuth.OAuth.Core" version="4.3.4.13329" targetFramework="net45" />
<package id="DotNetOpenAuth.OpenId.Core" version="4.3.4.13329" targetFramework="net45" />
<package id="DotNetOpenAuth.OpenId.RelyingParty" version="4.3.4.13329" targetFramework="net45" />
<package id="EntityFramework" version="6.0.1" targetFramework="net45" />
<package id="Facebook" version="6.4.2" targetFramework="net45" />
<package id="Faker" version="1.2" targetFramework="net45" />
<package id="Faker.Net" version="1.0.3" targetFramework="net45" />
<package id="Galleria.js" version="1.2.9" targetFramework="net45" />
<package id="HtmlAgilityPack" version="1.4.6" targetFramework="net45" />
<package id="ImageResizer" version="3.3.3" targetFramework="net45" />
<package id="iTextSharp" version="4.1.2" targetFramework="net45" />
<package id="jQuery" version="1.10.2" targetFramework="net45" />
<package id="jQuery.Cookie" version="1.3.1" targetFramework="net45" />
<package id="jQuery.MaskedInput" version="1.3.1.1" targetFramework="net45" />
<package id="jQuery.UI.Combined" version="1.10.3" targetFramework="net45" />
<package id="jQuery.Validation" version="1.8.1" targetFramework="net45" />
<package id="jquery-globalize" version="0.1.3" targetFramework="net45" />
<package id="knockoutjs" version="2.2.1" targetFramework="net45" />
<package id="Microsoft.AspNet.Mvc" version="5.1.1" targetFramework="net45" />
<package id="Microsoft.AspNet.Providers" version="1.1" targetFramework="net45" />
<package id="Microsoft.AspNet.Providers.Core" version="1.0" targetFramework="net45" />
<package id="Microsoft.AspNet.Razor" version="3.1.1" targetFramework="net45" />
<package id="Microsoft.AspNet.Web.Optimization" version="1.1.0" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi" version="5.1.1" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.1.1" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.1.1" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.1.1" targetFramework="net45" />
<package id="Microsoft.AspNet.WebHelpers" version="3.1.1" targetFramework="net45" />
<package id="Microsoft.AspNet.WebPages" version="3.1.1" targetFramework="net45" />
<package id="Microsoft.AspNet.WebPages.Data" version="3.1.1" targetFramework="net45" />
<package id="Microsoft.AspNet.WebPages.OAuth" version="3.1.1" targetFramework="net45" />
<package id="Microsoft.AspNet.WebPages.WebData" version="3.1.1" targetFramework="net45" />
<package id="Microsoft.Bcl" version="1.1.6" targetFramework="net45" />
<package id="Microsoft.Bcl.Build" version="1.0.13" targetFramework="net45" />
<package id="Microsoft.jQuery.Unobtrusive.Ajax" version="2.0.30506.0" targetFramework="net45" />
<package id="Microsoft.jQuery.Unobtrusive.Validation" version="2.0.30506.0" targetFramework="net45" />
<package id="Microsoft.Net.Http" version="2.2.18" targetFramework="net45" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
<package id="ModelMetadataExtensionsWithBugfix" version="0.1.2" targetFramework="net45" />
<package id="Modernizr" version="2.6.2" targetFramework="net45" />
<package id="Moq" version="4.0.10827" targetFramework="net45" />
<package id="morelinq" version="1.0.16006" targetFramework="net45" />
<package id="MvcMailer" version="4.5" targetFramework="net45" />
<package id="MvcScaffolding" version="1.0.9" targetFramework="net45" />
<package id="Newtonsoft.Json" version="5.0.8" targetFramework="net45" />
<package id="PagedList" version="1.16.0.0" targetFramework="net45" />
<package id="PagedList.Mvc" version="4.3.0.0" targetFramework="net45" />
<package id="RazorGenerator.Mvc" version="2.1.1" targetFramework="net45" />
<package id="RazorGenerator.Testing" version="2.1.1" targetFramework="net45" />
<package id="RazorPDF" version="1.0.0" targetFramework="net45" />
<package id="ReflectionMagic" version="2.0.0" targetFramework="net45" />
<package id="RestSharp" version="104.1" targetFramework="net45" />
<package id="SendGrid" version="1.1.1" targetFramework="net45" />
<package id="System.Management.Automation" version="6.1.7601.17515" targetFramework="net45" />
<package id="System.Web.Providers" version="1.2" targetFramework="net45" />
<package id="T4Scaffolding" version="1.0.8" targetFramework="net45" />
<package id="T4Scaffolding.Core" version="1.0.0" targetFramework="net45" />
<package id="WebActivator" version="1.5.3" targetFramework="net45" />
<package id="WebActivatorEx" version="2.0.4" targetFramework="net45" />
<package id="WebGrease" version="1.6.0" targetFramework="net45" />
</packages>
和站點#2的packages.config
:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Antlr" version="3.4.1.9004" targetFramework="net45" />
<package id="BeginCollectionItem" version="1.2.1.0" targetFramework="net45" />
<package id="CSS-Filters-Polyfill" version="1.0.0" targetFramework="net45" />
<package id="EntityFramework" version="6.0.1" targetFramework="net45" />
<package id="Facebook" version="6.1.4" targetFramework="net45" />
<package id="ImageResizer" version="3.4.2" targetFramework="net45" />
<package id="jQuery" version="1.9.1" targetFramework="net45" />
<package id="jQuery.MaskedInput" version="1.3.1.1" targetFramework="net45" />
<package id="jQuery.UI.Combined" version="1.10.3" targetFramework="net45" />
<package id="jQuery.Validation" version="1.9.0.1" targetFramework="net45" />
<package id="jQuery-Timepicker-Addon" version="1.0.0" targetFramework="net45" />
<package id="knockoutjs" version="2.1.0" targetFramework="net45" />
<package id="Microsoft.AspNet.Mvc" version="5.1.1" targetFramework="net45" />
<package id="Microsoft.AspNet.Mvc.Facebook" version="5.0.0" targetFramework="net45" />
<package id="Microsoft.AspNet.Razor" version="3.1.1" targetFramework="net45" />
<package id="Microsoft.AspNet.Web.Optimization" version="1.1.2" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi" version="5.1.1" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.1.1" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.1.1" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.HelpPage" version="5.0.0" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.OData" version="5.0.0" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.SelfHost" version="5.0.0" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Tracing" version="5.0.0" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.1.1" targetFramework="net45" />
<package id="Microsoft.AspNet.WebHelpers" version="3.1.1" targetFramework="net45" />
<package id="Microsoft.AspNet.WebPages" version="3.1.1" targetFramework="net45" />
<package id="Microsoft.AspNet.WebPages.Data" version="3.1.1" targetFramework="net45" />
<package id="Microsoft.AspNet.WebPages.WebData" version="3.1.1" targetFramework="net45" />
<package id="Microsoft.Bcl" version="1.1.6" targetFramework="net45" />
<package id="Microsoft.Bcl.Build" version="1.0.13" targetFramework="net45" />
<package id="Microsoft.Data.Edm" version="5.6.0" targetFramework="net45" />
<package id="Microsoft.Data.OData" version="5.6.0" targetFramework="net45" />
<package id="Microsoft.jQuery.Unobtrusive.Ajax" version="2.0.20710.0" targetFramework="net45" />
<package id="Microsoft.jQuery.Unobtrusive.Validation" version="2.0.20710.0" targetFramework="net45" />
<package id="Microsoft.Net.Http" version="2.2.18" targetFramework="net45" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
<package id="Modernizr" version="2.5.3" targetFramework="net45" />
<package id="MvcFlash.Core" version="2.0.1" targetFramework="net45" />
<package id="MvcScaffolding" version="1.0.9" targetFramework="net45" />
<package id="Newtonsoft.Json" version="5.0.8" targetFramework="net45" />
<package id="System.Spatial" version="5.6.0" targetFramework="net45" />
<package id="T4Scaffolding" version="1.0.8" targetFramework="net45" />
<package id="T4Scaffolding.Core" version="1.0.0" targetFramework="net45" />
<package id="Twitter.Bootstrap" version="3.0.0" targetFramework="net45" />
<package id="Twitter.Bootstrap.MVC" version="2.0.0" targetFramework="net45" />
<package id="WebActivatorEx" version="2.0.4" targetFramework="net45" />
<package id="WebGrease" version="1.6.0" targetFramework="net45" />
<package id="XmlExport" version="0.3.2" targetFramework="net45" />
<package id="XmlOutput" version="1.0.0" targetFramework="net45" />
</packages>
我還能嘗試什么?
編輯
Web API調用(一個站點調用另一個站點):
if (SettingsHelper.GetCurrentSettings().IntegratedToFederated)
{
// Report Federated
var pointsGranted = new APIPointsGrantedModel();
pointsGranted.CustomerId = customerPointsPerShop.Customer.ControlKey;
pointsGranted.ShopId = (Guid)customerPointsPerShop.Shop.ControlKey;
pointsGranted.Amount = customerPointsPerShop.Points;
pointsGranted.Timestamp = DateTime.Now;
HttpClient aClient = new HttpClient();
var website = context.Settings.FirstOrDefault().FederatedWebsite;
Uri theUri = new Uri(website + "/api/APIShops/PointsGranted");
HttpResponseMessage aResponse = await aClient.PostAsync(theUri, StringContentHelper.BuildStringContent(pointsGranted, pointsGranted.GetType()));
if (aResponse.IsSuccessStatusCode)
{
var responseContent = await aResponse.Content.ReadAsAsync<APIPointsGrantedModel>();
// Read the response and perform some business logic
}
else
{
String failureMsg = "HTTP Status: " + aResponse.StatusCode.ToString() + " - Reason: " + aResponse.ReasonPhrase;
this.FlashError(failureMsg);
// TODO: Register in log.
}
}
站點#1的web.config
:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
...
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="DotNetOpenAuth.AspNet" publicKeyToken="2780ccd10d57b246" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.3.4.13329" newVersion="4.3.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.3.4.13329" newVersion="4.3.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.1.0.0" newVersion="5.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.1.0.0" newVersion="5.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebMatrix.WebData" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebMatrix.Data" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-5.1.0.0" newVersion="5.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Moq" publicKeyToken="69f491c39445e920" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.1402.2112" newVersion="4.2.1402.2112" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Data.Edm" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.6.1.0" newVersion="5.6.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Data.OData" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.6.1.0" newVersion="5.6.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Spatial" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.6.1.0" newVersion="5.6.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="itextsharp" publicKeyToken="8354ae6d2174ddca" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.5.0.0" newVersion="4.1.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
</dependentAssembly>
</assemblyBinding>
...
</configuration>
站點#2的web.config
:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
...
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<!-- dependentAssembly>
<assemblyIdentity name="DotNetOpenAuth.AspNet" publicKeyToken="2780ccd10d57b246" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly -->
<dependentAssembly>
<assemblyIdentity name="System.Web.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebMatrix.WebData" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebMatrix.Data" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<!-- dependentAssembly>
<assemblyIdentity name="DotNetOpenAuth.OpenId" publicKeyToken="2780ccd10d57b246" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0" />
</dependentAssembly -->
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.1.0.0" newVersion="5.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.1.0.0" newVersion="5.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-5.1.0.0" newVersion="5.1.0.0" />
</dependentAssembly>
<!-- dependentAssembly>
<assemblyIdentity name="DotNetOpenAuth.OAuth.Consumer" publicKeyToken="2780ccd10d57b246" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="DotNetOpenAuth.OAuth" publicKeyToken="2780ccd10d57b246" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="DotNetOpenAuth.OpenId.RelyingParty" publicKeyToken="2780ccd10d57b246" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0" />
</dependentAssembly -->
<dependentAssembly>
<assemblyIdentity name="DotNetOpenAuth.OpenId" publicKeyToken="2780ccd10d57b246" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="DotNetOpenAuth.OpenId.RelyingParty" publicKeyToken="2780ccd10d57b246" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="DotNetOpenAuth.AspNet" publicKeyToken="2780ccd10d57b246" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="DotNetOpenAuth.OAuth.Consumer" publicKeyToken="2780ccd10d57b246" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="DotNetOpenAuth.OAuth" publicKeyToken="2780ccd10d57b246" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Moq" publicKeyToken="69f491c39445e920" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.1402.2112" newVersion="4.2.1402.2112" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Data.Edm" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.6.1.0" newVersion="5.6.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Data.OData" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.6.1.0" newVersion="5.6.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Spatial" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.6.1.0" newVersion="5.6.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
</dependentAssembly>
</assemblyBinding>
...
</system.net>
</configuration>
注意:Microsoft-Web-Helpers已替換為Microsoft.AspNet.WebHelpers。 您應該首先刪除舊包,然后安裝較新的包。
我打開了NuGet包管理器並安裝了Microsoft.AspNet.WebHelpers包,開始工作。 請注意,當您創建新的MVC 5應用程序並嘗試合並SimpleSecurity或SimpleMembership時,您將遇到同樣的問題,因為默認情況下未安裝Microsoft.AspNet.WebHelpers。 它必須存在才能使SimpleMembership正確運行。
我確認參考應用程序中的所有功能在升級后都能正常工作。 甚至使用Postal工作的電子郵件的生成,我也不確定,因為Razor的升級也是如此。
我需要對SimpleSecurity程序集進行的一項更改是刪除過濾器AuthorizeAttribute和BasicAuthorizeAttribute並將它們放在單獨的程序集中。 我這樣做是因為它們依賴於MVC和Web API程序集。 所以現在有一個MVC版本和另一個MVC 5版本。
請參考此鏈接: http : //ctsoftr.com/upgrading-from-asp-net-mvc-4-to-5/
首先,如果可能的話,我建議將Visual Studio 2013用於MVC 5 。
似乎你已經嘗試了很多東西,但我重申一些事情(因為它可以幫助其他同樣問題的人)必須檢查並且可能是問題的原因:
更新所有nuget包。 (通過packages.config看來你已經完成了)
在global.asax
,更改:
WebApiConfig.Register(GlobalConfiguration.Configuration);
至
GlobalConfiguration.Configure(WebApiConfig.Register);
使用包管理器中的以下命令刪除以下任何安裝的ASP.NET NuGet包:
Uninstall-Package -Id Microsoft.AspNet.WebPages.Administration Uninstall-Package -Id Microsoft-Web-Helpers Uninstall-Package -Id Microsoft.AspNet.Mvc.FixedDisplayModes
(似乎你也這樣做了)。
在web.config中確保這些更改存在:
在<runtime>/<assemblyBinding>
部分中,確保正確的newVersion
存在:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<!--Two elements removed for Clarity -->
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<!--WebGrease element removed for Clarity -->
</assemblyBinding>
5
。 在web.config中找到<appSettings>
部分,並將webpages:version從2.0.0.0.0更新為3.0.0.0 ,如下所示:
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
6
。 刪除除Full之外的所有信任級別,如:
<securityPolicy>
<!--<trustLevel name="Medium" policyFile="web_mediumtrust.config"/>-->
</securityPolicy>
7. 更新Views文件夾下的web.config文件
將包含System.Web.Mvc
所有元素從版本“ 4.0.0.0 ”更新為版本“ 5.0.0.0 ”。
`
--> <pages validateRequest="false" pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> <controls> <add assembly="System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" /> </controls> </pages> </system.web>`
將包含System.Web.WebPages.Razor
所有元素從版本“ 2.0.0.0 ”更新為版本“ 3.0.0.0 ”。 如果此部分包含System.Web.WebPages
,請將這些元素從版本“ 2.0.0.0 ”更新為版本“ 3.0.0.0 ”
<configuration> <configSections> <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> </sectionGroup> </configSections>`
如果您在上一步中刪除了Microsoft-Web-Helpers NuGet包,請在PMC中使用以下命令安裝Microsoft.AspNet.WebHelpers
:
Install-Package -Id Microsoft.AspNet.WebHelpers
如果您的應用程序使用User.IsInRole()
方法,請將以下內容添加到Web.config
文件中。
<system.webServer> <modules> <remove name="RoleManager" /> </modules> </system.webServer>`
從項目文件中刪除MVC 4項目類型GUID。
ProjectName.csproj
。 ProjectTypeGuids
元素,然后刪除MVC 4項目GUID, {E3E379DF-F4C6-4180-9B81-6769533ABE47}
。 希望它會有所幫助。
我有同樣的錯誤信息,它與一個已更改但未正確更新的軟件包有關(不知道為什么,不知道如何,你可以想象這個錯誤帶來的快樂)..我扔掉了我的包文件夾,並重建了項目等瞧...幾個小時后,我又回到編碼
這是完整的官方遷移指南:
如何將ASP.NET MVC 4和Web API項目升級到ASP.NET MVC 5和Web API 2
主要變化包括:
中等信托不再可用(現在應使用完全信托);
現在應該使用與MVC 5和Web API 2兼容的軟件包。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.