GAC和\Inetpub\wwwroot\bin中都需要ASP.NET DLL

GAC和\Inetpub\wwwroot\bin中都需要ASP.NET DLL,asp.net,dll,sharepoint-2007,gac,Asp.net,Dll,Sharepoint 2007,Gac,我将ASP.NET应用程序DLL复制到\Inetpub\wwwroot\bin中,并复制了Sharepoint 2007 TEMPLATES\Layouts文件夹下的应用程序文件夹,以便从中访问该应用程序http://sp-portal/sites/sitecoll123/_layouts/aspnetapp/Default.aspx. 它抱怨说: 请求“System.Data.SqlClient.SqlClientPermission,System.Data,Version=2.0.0,Cul

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

请求“System.Data.SqlClient.SqlClientPermission,System.Data,Version=2.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”类型的权限失败。位于System.Security.CodeAccessSecurityEngine.CheckObject demand、StackScrawMark和stackMark,布尔值isPermSet

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

无法加载类型“AppNS.Default”。位于System.Web.UI.TemplateParser.GetTypeString typeName,Boolean ignoreCase,Boolean throwOnError

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

<%@ Assembly Name="AppNS, Version=1.0.0.0,Culture=neutral,PublicKeyToken=d5e3267159f21fb6" %>

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

可能GAC和bin文件夹中的DLL版本不同?它们都是1.0.0.0。我也在想这个问题,但事实上,两者都不能单独工作,这让人更加困惑!