您好,感謝您的幫助, 我知道這個問題或類似的問題已經發布,經常與MVC 3應用。但是,每當我嘗試使用.net 4.0目標框架從Visual Web Developer Express 2010內啓動任何應用程序時,我都會收到此錯誤消息。System.MethodAccessException:嘗試通過安全透明方法訪問安全關鍵方法在所有應用程序上都失敗
確切的錯誤信息是:
嘗試通過安全透明方法 'System.Runtime.Diagnostics.DiagnosticTrace..ctor(System.String,的System.Guid)' 來訪問安全臨界方法「系統。 Runtime.Diagnostics.EtwDiagnosticTrace..ctor(System.String,System.Guid)'failed'。
程序集'System.ServiceModel.Internals,版本= 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'用AllowPartiallyTrustedCallersAttribute標記,並使用2級安全透明度模型。級別2的透明度會導致AllowPartiallyTrustedCallers程序集中的所有方法在默認情況下變爲安全透明,這可能是此異常的原因。
堆棧跟蹤:
[MethodAccessException: Attempt by security transparent method 'System.Runtime.Diagnostics.DiagnosticTrace..ctor(System.String, System.Guid)' to access security critical method 'System.Runtime.Diagnostics.EtwDiagnosticTrace..ctor(System.String, System.Guid)' failed.
Assembly 'System.ServiceModel.Internals, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' is marked with the AllowPartiallyTrustedCallersAttribute, and uses the level 2 security transparency model. Level 2 transparency causes all methods in AllowPartiallyTrustedCallers assemblies to become security transparent by default, which may be the cause of this exception.]
System.Runtime.Diagnostics.DiagnosticTrace..ctor(String traceSourceName, Guid etwProviderId) +24
System.ServiceModel.Activation.FxTrace.InitializeTracing() +90
System.ServiceModel.Activation.FxTrace.get_Trace() +84
System.ServiceModel.ServiceHostingEnvironment.EnsureInitialized() +59
System.ServiceModel.ServiceHostingEnvironment.OnEnsureInitialized(Object state) +4
System.ServiceModel.AspNetPartialTrustHelpers.PartialTrustInvoke(ContextCallback callback, Object state) +52
System.ServiceModel.ServiceHostingEnvironment.SafeEnsureInitialized() +65
System.ServiceModel.Activation.HttpModule.ProcessRequest(Object sender, EventArgs e) +58
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +143
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69
我在這裏的損失是完全。如果我從頭創建任何基本應用程序並嘗試啓動它,即使沒有添加任何內容,我也會得到此錯誤屏幕。我試圖從
<compilation debug="true" targetFramework="4.0" />
標籤卸下 目標框架=「4.0」屬性,沒有結果運行它。我曾嘗試刪除該屬性和添加
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v2.0.50727"/>
<supportedRuntime version="v4.0.30319"/>
</startup>
的建議在此線程:BadImageFormatException - Is it possible to specify which .NET version is used to run an executable? 我試圖修復.NET 4.0框架安裝,因爲我聽說,可能是一個問題。 我剛剛安裝了Visual Web開發人員,以便從Microsoft Visual Studio 2010移除的項目上工作,因爲我的試用版已過期,因此我們將不勝感激任何幫助或潛在的解決方法。
我已經在其他地方看過類似的東西,雖然我無法成功實施您的修復程序,但我相信這是正確的迴應。 – Christian
從AssemblyInfo.cs中刪除AllowPartiallyTrustedCallersAttribute適用於我的解決方案。我從一個沒有使用最新的.Net框架版本的較舊的程序集中獲取錯誤。 – Apogee
在將一個大型項目更新到.Net 4後,我遇到了這個問題。它是一個用AllowPartiallyTrustedCallersAttribute裝飾的ORM庫(Entity Spaces)。評論它,一切都已修復。謝謝! –