2013-10-17 17 views
1

我複製一個ASP.NET應用程序的DLL到\的Inetpub \ wwwroot的\ bin和2007年的Sharepoint模板\ Layouts文件夾下複製應用程序文件夾,這樣我就可以訪問申請http://sp-portal/sites/sitecoll123/_layouts/aspnetapp/Default.aspx。它抱怨說:兩個GAC和的Inetpub需要ASP.NET DLL wwwroot的 BIN

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下_layouts安裝了ASP.NET 3.5應用/ MOSS 2007

+0

也許GAC和BIN文件夾中DLL的版本不同? – ronen

+0

它們都是1.0.0.0。我也很想知道這一點,但事實上這兩者都無法自行工作,這使得這一切更加令人困惑! –

回答

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

是在Default.aspx的頁面中的控制(ASCX),其需要以引用安裝組件丟失以及在GAC中。在這兩個文件中添加此行後,我能夠從\ Inetpub \ wwwroot \ bin中刪除該DLL,並且仍然有一個功能應用程序。

相關問題