1

ASP.NET アプリケーション DLL を \Inetpub\wwwroot\bin にコピーし、そのアプリケーション フォルダーを SharePoint 2007 TEMPLATES\Layouts フォルダーの下にコピーしたので、.NET からアプリケーションにアクセスできました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)

次に、アセンブリを GAC にインストールしたまま、DLL を \Inetpub\wwwroot\bin にコピーし直しました。それだけでうまくいきました!これを説明することはできません... GACに入れることは、アセンブリに簡単にアクセスできるようにするための迅速で汚い方法だと思いました。なぜ両方の場所にある必要があるのですか?これは、Sharepoint/MOSS 2007 の _layouts の下にインストールされた ASP.NET 3.5 アプリケーションです。

4

1 に答える 1

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

Default.aspx だけでなく、GAC にインストールされたアセンブリを参照するために必要なページ コントロール (ASCX) にもありませんでした。両方のファイルにこの行を追加した後、\Inetpub\wwwroot\bin から DLL を削除しても、機能するアプリケーションを保持することができました。

于 2013-10-18T04:40:57.477 に答える