1

我在 Visual Studio 中有一个 SharePoint WebPart 项目。作为项目的一部分,我引用了 interop.ActiveDS.dll。

我可以成功编译项目并将解决方案添加/部署到 SharePoint。当我尝试在 SharePoint 中运行 WebPart 时,出现错误:

That assembly does not allow partially trusted callers.

[SecurityException: That assembly does not allow partially trusted callers.]
   PeopleAdWebPart.PeopleAdWebPart.OnLoad(EventArgs e) +0
   System.Web.UI.Control.LoadRecursive() +47
   System.Web.UI.Control.LoadRecursive() +131
   System.Web.UI.Control.LoadRecursive() +131
   System.Web.UI.Control.LoadRecursive() +131
   System.Web.UI.Control.LoadRecursive() +131
   System.Web.UI.Control.LoadRecursive() +131
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +7350
   System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +213
   System.Web.UI.Page.ProcessRequest() +86
   System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +18
   System.Web.UI.Page.ProcessRequest(HttpContext context) +49
   Microsoft.SharePoint.Publishing.TemplateRedirectionPage.ProcessRequest(HttpContext context) +153
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +358
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +64

我已将 [assembly: System.Security.AllowPartiallyTrustedCallers] 添加到 assemblyinfo.cs 文件,但这并没有帮助。

将不胜感激任何答案!

4

2 回答 2

1

将其部署到 GAC 似乎是一种可能的解决方案:

http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/f9bff1aa-007b-4933-bb5b-56a283aea227/

祝一切顺利

于 2009-01-13T12:15:29.320 回答
0

问题是 Interop.ActiveDs.dll 不允许部分受信任的调用者。您最好的选择是将签名的互操作程序集部署到 GAC:

TlbImp %windir%\system32\ActiveDs.tlb /out:Interop.ActiveDs.dll /keyfile:KeyFile.snk
于 2009-01-14T05:01:46.670 回答