【问题标题】:ASP.NET DLL required in both GAC and \Inetpub\wwwroot\binGAC 和 \Inetpub\wwwroot\bin 都需要 ASP.NET DLL
【发布时间】:2013-10-25 14:56:06
【问题描述】:

我将一个 ASP.NET 应用程序 DLL 复制到 \Inetpub\wwwroot\bin 并复制了 Sharepoint 2007 TEMPLATES\Layouts 文件夹下的应用程序文件夹,因此我可以从 http://sp-portal/sites/sitecoll123/_layouts/aspnetapp/Default.aspx 访问该应用程序。它抱怨说:

Request for the permission of type 'System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed. at System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet)

然后我将 DLL 安装到 GAC(在将其从 \inetpub\wwwroot\bin 文件夹中删除后),但它无法加载 DLL。它抱怨说:

Could not load type 'AppNS.Default'. at System.Web.UI.TemplateParser.GetType(String typeName, Boolean ignoreCase, Boolean throwOnError)

然后,我将 DLL 复制回 \Inetpub\wwwroot\bin,同时仍将程序集安装在 GAC 中。只有这样它才起作用!我无法解释这一点......我认为将它放在 GAC 中是让程序集易于访问的快速而肮脏的方式。为什么需要在这两个地方?这是安装在 Sharepoint/MOSS 2007 中的 _layouts 下的 ASP.NET 3.5 应用程序。

【问题讨论】:

  • 可能是GAC和BIN文件夹中的DLL版本不同?
  • 它们都是 1.0.0.0。我也想知道这一点,但是没有一个单独工作的事实使这更加令人困惑!

标签: asp.net dll sharepoint-2007 gac


【解决方案1】:
<%@ Assembly Name="AppNS, Version=1.0.0.0,Culture=neutral,PublicKeyToken=d5e3267159f21fb6" %>

在 Default.aspx 以及页面控件 (ASCX) 中缺失,这是引用 GAC 中安装的程序集所必需的。在两个文件中添加这一行后,我能够从 \Inetpub\wwwroot\bin 中删除 DLL,并且仍然有一个功能应用程序。

【讨论】:

    猜你喜欢
    • 2010-10-05
    • 1970-01-01
    • 1970-01-01
    • 2012-10-10
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多