2014-02-16 56 views
4

我的解決方案中有兩個MVC網站,轉換爲MVC5。對於特定的測試,我需要兩個站點都運行,因爲通過Web API與另一個站點進行通信。他們使用IIS Express運行。嘗試通過安全透明方法'Microsoft.Web.Helpers.PreApplicationStartCode.Start()'來訪問安全關鍵方法

當我在Visual Studio(2012)中啓動其中一個並訪問已啓動的應用程序時,一切正常。當我嘗試訪問的另一個,我有以下信息:

嘗試通過安全透明方法「Microsoft.Web.Helpers.PreApplicationStartCode.Start()」來訪問安全臨界方法「System.Web.WebPages .Razor.WebPageRazorHost.AddGlobalImport(System.String)'失敗。

正如其他答案所示,我更新了所有的軟件包,並從其中一個軟件包中卸載了DotNetOpenAuth軟件包,但沒有任何結果。

這是package.config在現場#1:

<?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> 

而且packages.config在現場#2:

<?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. 
    } 
} 

web.config在現場#1:

<?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> 

web.config在現場#2:

<?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> 
+0

請在您的文章中包含您的Web API調用(來自客戶端)。另外,請解釋一下:您是否在兩種情況下跨域請求請求,僅在一種情況下?請澄清。 –

+0

恐怕這與答案無關,但我編輯了我的問題以澄清。兩個站點都相互發送命令,因爲一個是「聯邦」的主站點,另一個是由這個主站點控制的。 –

+0

它可能不相關。每當我看到跨域請求時,我都會關注同樣的源策略限制。所以,我想確認你啓用了CORS –

回答

0

注意: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/

+0

請注意,這些步驟之前已完成,正如我從這兩個網站發佈的'packages.config'所示。當我嘗試同時訪問這兩個站點時,此事開始。在調試中正常工作,而另一個有錯誤。 –

+0

@CiganoMorrisonMendez - 但錯誤說Microsoft.Web.Helpers,你應該已經刪除的包...嗯....這不是爲你發出警告? –

+0

@ErikFunkenbusch看起來像一個bug或一種。 –

0

首先,我會如果可能的話推薦給使用Visual Studio 2013年MVC 5

看來你已經嘗試過很多事情,但我重申一些東西(因爲它可以幫助同樣問題的其他人)必須檢查&可能是問題的原因:

  1. 更新所有nuget包。 (由packages.config看來你已經做到了)

  2. global.asax,變化:

    WebApiConfig.Register(GlobalConfiguration.Configuration);

    GlobalConfiguration.Configure(WebApiConfig.Register);

  3. 刪除下列任​​何ASP.NET的NuGet的在軟件包管理器中使用以下命令安裝的軟件包:

    Uninstall-Package -Id Microsoft.AspNet.WebPages.Administration 
    
    Uninstall-Package -Id Microsoft-Web-Helpers 
    
    Uninstall-Package -Id Microsoft.AspNet.Mvc.FixedDisplayModes 
    

    (似乎你也這樣做了)。

  4. 在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>部並更新網頁:從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。 Views文件夾

  • 更新包含System.Web.Mvc從版本的所有元素「4.0.0.0下

    <securityPolicy> 
        <!--<trustLevel name="Medium" policyFile="web_mediumtrust.config"/>--> 
    </securityPolicy> 
    

    7. 更新的web.config文件中:刪除其他任何信任水平比全像「至版本」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>` 
    
  • 如果你在前面的步驟中去除微軟的Web-助手NuGet包,安裝Microsoft.AspNet.WebHelpers與在PMC以下命令:

    Install-Package -Id Microsoft.AspNet.WebHelpers 
    
  • 如果應用程序使用的User.IsInRole()方法,添加以下到Web.config文件。

    <system.webServer> 
        <modules> 
         <remove name="RoleManager" /> 
        </modules> 
    </system.webServer>` 
    
  • 從項目中移除文件的GUID MVC 4項目類型。

    • 在解決方案資源管理器中,右鍵單擊項目名稱,然後選擇「卸載項目」。
    • 右鍵單擊該項目並選擇編輯ProjectName.csproj
    • 找到ProjectTypeGuids元素,然後刪除MVC 4項目GUID {E3E379DF-F4C6-4180-9B81-6769533ABE47}
    • 保存並關閉打開的項目文件。
    • 右鍵單擊該項目並選擇重新加載項目。

    希望它會有所幫助。

來源:www.asp.net/mvc/tutorials

+0

感謝您的回答,但我在兩個項目中完成了所有步驟(項目從MVC4遷移到MVC5),顯然問題不在於依賴項或配置中。這似乎與默認的'machine.config'條目有關。 –

0

我有同樣的錯誤信息,它必須是與已更改,但沒有正確地更新到處包(不知道爲什麼,不知道怎麼回事,你能想象的快樂這個錯誤帶來)..我扔掉了我的包文件夾,並重建項目等瞧......只有幾小時後,我回到編碼

相關問題