2009-07-23 48 views
0

我有一个包含一些Ajax功能的使用控件。我做了所有必要的更改,使我的网站ajax兼容(即在web.config中添加了各自的标签),它工作正常。我正在使用智能部分来加载此用户控件。但是,当我点击打开工具窗格的智能部分,它给了我以下。使用FBA站点的智能部件

无法打开用户控制路径:System.UnauthorizedAccessException:拒绝访问路径'C:\ Inetpub \ wwwroot \ wss \ VirtualDirectories \ 5252 \ UserControls'。在System.IO.Directory.GetFiles上System.IO .__ Error.WinIOError(Int32错误码,字符串maybeFullPath)在System.IO.Directory.InternalGetFileDirectoryNames(字符串路径,字符串userPathOriginal,字符串searchPattern,布尔includeFiles,布尔includeDirs,SearchOption searchOption) (字符串路径,字符串是searchPattern,searchOption searchOption)在System.IO.Directory.GetFiles(字符串路径)在SmartPart.UserControlToolpart.RenderToolPart(HtmlTextWriter的输出)

请帮我解决这个错误..

回答

0

我有同样的问题回头。它更多的是SmartPart如何工作的问题。它有UserControlPath始终指向usercontrol路径。

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

一个问题是,它在第​​一次和第二次尝试编辑或更改用户控件时会变回/ UserControl。

我已经完成的工作是从Codeplex中获取代码的副本,并使UserControlPath属性为可浏览状态,以便路径在Web部件的工具部分中可见。以下代码片段位于SmartPart中。 cs

[Browsable(true), 

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

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

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

然后,您可以把一个SafeControl项到你的web.config此文件夹

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

该文件夹位于文件系统上< 12HIVE> /模板/ CONTROLTEMPLATES。

+0

嗨李戴尔感谢您的回复.. 但我的网站正在使用基于表单的身份验证。你可以解释我如何使用基于表单的认证站点中的智能部分的帮助使用基于Ajax的用户控制。或者FBA用户如何读取userControls文件夹的写入权限...? – Sachin 2009-07-24 04:47:45