我在visual studio中为自定义母版页创建了一个代码隐藏文件。我手动上钩了一切;安全控制和自定义策略。一切都很棒!
然后,我想使用WSPBuilder将其置于sharepoint解决方案中,以便更好地进行部署。我创建了WSP解决方案,添加了我的类文件并将输出目录更改为bin文件夹。然后我构建了解决方案并进行了部署,确保更改母版页上的页面指令以反映新的程序集名称。
现在当我去查看sharepoint网站时,我收到一条错误,指出安全异常错误说明
'异常详细信息:System.Security.SecurityException:该程序集不允许部分信任的调用者。'
这让我感到困惑,因为它作为部署到网站bin目录的visual studio类文件。 然而,当我把它放入sharepoint解决方案时,它会破坏!我尝试添加
'[assembly:System.Security.AllowPartiallyTrustedCallers]'
到AssemblyInfo.cs,但这没有帮助。
其他人是否经历过此或有任何建议?
编辑:我还应该提到后面的代码是尝试访问共享点列表。
答案 0 :(得分:1)
您仍然必须包含SafeControls条目才能使其正常工作,例如:
<SafeControl Assembly="[FullAssembly Name]"
Namespace="[YourMasterPageNamespace]"
TypeName="*"
Safe="True" />
或在WSPBuilder配置中:
<add key="BuildSafeControls" value="True" />
答案 1 :(得分:1)
从未见过这个..但我怀疑没有多少人为SharePoint中的母版页创建了代码隐藏(微软也没有!)。
我不知道你要构建什么,但我可能会使用母版页中包含的服务器控件来实现它。
AllowPartiallyTrustedCallers一直为我的服务器控件修复它。
您的web.config文件设置为什么?试试Full。
答案 2 :(得分:0)
最近我遇到了一个情况,即我使用的是第三方程序集,但它的代码中没有 AllowPartiallyTrustedCallers 。当我尝试使用assebmly时,它会失败。
答案 3 :(得分:0)
您是否确定已将装配已部署到bin而不是GAC意外?如果有两个程序集,则GAC中的一个程序集优先。
答案 4 :(得分:0)
您可以尝试检查您使用的是完全限定的五部件名称,包括程序集的正确公钥令牌和命名空间。