无法将System.Web.Extensions应用于PartialTrustVisibleAssemblies列表

时间:2016-03-16 17:26:33

标签: c# asp.net .net-4.5 partial-trust system.web.extensions

在webforms .net 4.5应用程序的web.config中,我设置了以下内容:

<trust legacyCasModel="true" level="Full" />

因为这是微软努力克服asp.net报告查看器中的一个错误,导致大型报告生成的时间比以前的.net版本(3.5及更早版本)要长得多。遗憾的是,启用旧版CasModel会导致以下错误。由于错误提示我多次尝试在我的网站的web.config中应用例外,例如:

<system.web>
        <partialTrustVisibleAssemblies>
            <add assemblyName="System.Web.Extensions" version="4.0.0" publicKey="0024000004800000940000000602000000240000525341310004000001000100B5FC90E7027F67871E773A8FDE8938C81DD402BA65B9201D60593E96C492651E889CC13F1415EBB53FAC1131AE0BD333C5EE6021672D9718EA31A8AEBD0DA0072F25D87DBA6FC90FFD598ED4DA35E44C398C454307E8E33B8426143DAEC9F596836F97C8F74750E5975C64E2189F45DEF46B2A2B1247ADC3652BF5C308055DA9" />
        </partialTrustVisibleAssemblies>
</system.web>

但错误仍然存​​在。我还尝试将此设置应用于.net 4 web.config并指定此程序集具有完全信任但它仍然无法正常工作。我已经阅读了大量有关此问题的文档,我无法找到解决此问题的任何其他方式(除了在我的项目中删除此程序集或对我的Web应用程序进行其他重大更改)。任何有关如何解决或解决此问题的建议将不胜感激,谢谢。

  

&#39; /&#39;中的服务器错误应用。       尝试使用安全透明方法&#39; Microsoft.ScriptManager.MSAjaxv45.PreApplicationStartCode.Start()&#39;访问安全关键方法&System; Web.UI.ScriptManager.get_ScriptResourceMapping()&#39;失败。       Assembly&#39; System.Web.Extensions,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35&#39;是一个有条件的APTCA程序集,在当前的AppDomain中未启用。为了使该组件由部分信任或安全性的透明的代码中使用,请加组件名称&#39; System.Web.Extensions程序,公钥= 0024000004800000940000000602000000240000525341310004000001000100B5FC90E7027F67871E773A8FDE8938C81DD402BA65B9201D60593E96C492651E889CC13F1415EBB53FAC1131AE0BD333C5EE6021672D9718EA31A8AEBD0DA0072F25D87DBA6FC90FFD598ED4DA35E44C398C454307E8E33B8426143DAEC9F596836F97C8F74750E5975C64E2189F45DEF46B2A2B1247ADC3652BF5C308055DA9&#39;创建AppDomain时到PartialTrustVisibleAssemblies列表。       描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。       异常详细信息:System.MethodAccessException:尝试安全透明方法&#39; Microsoft.ScriptManager.MSAjaxv45.PreApplicationStartCode.Start()&#39;访问安全关键方法&System; Web.UI.ScriptManager.get_ScriptResourceMapping()&#39;失败。        Assembly&#39; System.Web.Extensions,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35&#39;是一个有条件的APTCA程序集,在当前的AppDomain中未启用。为了使该组件由部分信任或安全性的透明的代码中使用,请加组件名称&#39; System.Web.Extensions程序,公钥= 0024000004800000940000000602000000240000525341310004000001000100B5FC90E7027F67871E773A8FDE8938C81DD402BA65B9201D60593E96C492651E889CC13F1415EBB53FAC1131AE0BD333C5EE6021672D9718EA31A8AEBD0DA0072F25D87DBA6FC90FFD598ED4DA35E44C398C454307E8E33B8426143DAEC9F596836F97C8F74750E5975C64E2189F45DEF46B2A2B1247ADC3652BF5C308055DA9&#39;创建AppDomain时到PartialTrustVisibleAssemblies列表。

2 个答案:

答案 0 :(得分:0)

尝试删除&#34; Microsoft.ScriptManager.MSAjax.dll&#34;和#34; Microsoft.ScriptManager.WebForms.dll&#34;来自参考文献(如果没有使用)。

答案 1 :(得分:0)

@Sachin,感谢您的回答,但我需要这个项目的程序集,以便无法解决此问题。我刚才解决了这个问题。我认为在应用程序中尝试某些身份验证功能时会发生此错误。我通过将报告功能设置为在新的应用程序池中打开来解决该问题,因此启用旧CAS模型只会影响新的应用程序池,因此不会影响应用程序中的其他身份验证功能。