将智能部件用于FBA站点

时间:2009-07-23 06:42:37

标签: sharepoint wss

我有一个包含一些ajax功能的use控件。我做了所有必要的更改,使我的网站ajax兼容(即在web.config中添加了相应的标签),这很好。我正在使用智能部件来加载此用户控件。但是当我点击打开智能部件的工具窗格时,它会给我跟进。

无法打开用户控制路径:System.UnauthorizedAccessException:拒绝访问路径“C:\ Inetpub \ wwwroot \ wss \ VirtualDirectories \ 5252 \ UserControls”。在System.IO。上的System.IO .__ Error.WinIOError(Int32 errorCode,String maybeFullPath)System.IO.Directory.GetFiles上的System.IO.Directory.InternalGetFileDirectoryNames(String path,String userPathOriginal,String searchPattern,Boolean includeFiles,Boolean includeDirs,SearchOption searchOption) (String path,String searchPattern,SearchOption searchOption)位于SmartPart.UserControlToolpart.RenderToolPart(HtmlTextWriter输出)的System.IO.Directory.GetFiles(String path)

请帮我解决这个错误..

2 个答案:

答案 0 :(得分:2)

发生这种情况是因为您已将用户控件放在SharePoint无法访问的站点根目录下的文件夹中。

通常,当您在SharePoint中部署用户控件时,您将控件放在CONTROLTEMPLATES文件夹中,该文件夹映射到IIS中的〜/ _controltemplates虚拟目录,默认情况下,SP可以访问此文件夹。

然后,您可以将SafeControl条目放入此文件夹的web.config中

  <SafeControl Src="~/_controltemplates/*" IncludeSubFolders="True" Safe="True"    AllowRemoteDesigner="True" />

该文件夹位于文件系统上的&lt; 12HIVE&gt; / TEMPLATE / CONTROLTEMPLATES。

答案 1 :(得分:0)

我有时会遇到同样的问题。更多关于SmartPart如何工作的问题。它的UserControlPath始终指向usercontrol路径。

根据Jan(SmartPart的创建者)comment,您可以在DWP文件中更改它。你可以做的是部署weppart并导出WebPart,在记事本中打开dwp / webpart文件,搜索文本 UserControlPath 替换你的路径。将webpart上传回具有不同名称的sharepoint并使用新的webpart

一个问题是,当我尝试编辑或更改用户控件时,它会第一次有效,然后再更改回/ UserControl。

我要解决的是从Codeplex获取代码的副本,并使UserControlPath属性可浏览为true,以便在Web Part的工具部分中显示该路径.Below代码片段存在于SmartPart.cs

    [Browsable(true),

    WebPartStorage(Storage.Personal)]
    public string UserControlPath {....}