-2

我意识到这是一个愚蠢的问题,但无法从我的网络访问 MSDN "Server Error: 502 - Web server received an invalid response while acting as a gateway or proxy server.",我不能只是坐在这里摆弄我的拇指。

我知道没有 MSDN 的替代品,而且我本地的 Visual Studio 帮助在这个类上没有任何东西。

请有人复制并粘贴Microsoft.Sharepoint SPSite类的条目,特别是构造函数,但整篇文章会很有用。我得到一个 FileNotFoundException 并且需要知道应该如何格式化 URL 属性。

以防你们中的任何人碰巧知道。

    public Dictionary<string, SPFolder> GetFolderCollection(string siteURL, string docLibraryName)
    {
        using (SPSite oSite = new SPSite(siteURL + ":23179"))
        {
            SPWeb oWeb = oSite.OpenWeb();
            SPList oList = oWeb.Lists[docLibraryName];

            SPFolderCollection oFolders = oList.RootFolder.SubFolders;

            foreach (SPFolder folder in oFolders)
            {
                foundFolders.Add(folder.Name, folder);
            }
            return foundFolders;
        }
    }

编辑:干杯,谷歌缓存ftw。

作为记录,我指向的是 IIS 站点根目录,而不是 Sharepoint“站点”。混淆了 Sharepoint 术语。

4

1 回答 1

3

表示 Web 应用程序中的网站集合,包括顶级网站及其所有子网站。每个 SPSite 对象或网站集都在一个 SPSiteCollection 对象中表示,该对象由 Web 应用程序中所有网站集的集合组成。

继承层次

System.Object
Microsoft.SharePoint.SPSite

命名空间:Microsoft.SharePoint

程序集:Microsoft.SharePoint(在 Microsoft.SharePoint.dll 中)

可用于沙盒解决方案:是

在 SharePoint Online 中可用

[SubsetCallableTypeAttribute] [ClientCallableTypeAttribute(Name = "Site", ServerTypeId = "{E1BB82E8-0D1E-4e52-B90C-684802AB4EF6}")] 公共类 SPSite:IDisposable

评论

要为 ASP.NET 页面上的特定网站集或控制台应用程序中的特定网站集实例化 SPSite 对象,请使用 SPSite 构造函数,如下所示: C# VB

SPSite oSiteCollection = new SPSite("Absolute_URL");

在 ASP.NET 应用程序中,您可以使用 SPContext 类的 Site 属性返回一个表示当前网站集的 SPSite 对象,如下所示: C#

SPSite oSiteCollection = SPContext.Current.Site;

使用 SPWebApplication 类的 Sites 属性返回一个 SPSiteCollection 对象,该对象表示 SharePoint Web 应用程序中的网站集集合。使用索引器从集合中返回单个网站集。例如,如果将网站集的集合分配给名为 oSiteCollections 的变量,则在 C# 中使用 oSiteCollections[index],在 Visual Basic 中使用 oSiteCollections(index),其中 index 是网站集的显示名称或索引号集合。

某些对象实现了 IDisposable 接口,您必须避免在不再需要这些对象后将它们保留在内存中。如果您创建自己的 SPSite 对象,则可以使用 Dispose 方法关闭该对象。您也可以改为实现 using 语句,以便 .NET Framework 公共语言运行时 (CLR) 自动释放用于存储网站集的内存,如下所示:C# VB

使用 (SPSite oSiteCollection = new SPSite("Absolute_URL") { ... }

但是,如果您有对共享资源的引用,例如当对象由 Web 部件中的 GetContextSite 方法提供时,请不要使用任何一种方法来关闭该对象。在共享资源上使用任一方法都会导致发生访问冲突错误。在您引用共享资源的情况下,请改为让 Microsoft SharePoint Foundation 或您的门户应用程序管理该对象。

有关良好编码实践的更多信息,请参阅处置对象。

重要的

如果您安装适用于 Windows SharePoint Services 3.0 的基础结构更新 (KB951695),如果自定义解决方案在模拟暂停时调用 SharePoint 对象模型,则可能会失败。如果您使用 Windows 身份验证并且您的代码从 Internet 信息服务 (IIS) 工作进程调用 SharePoint 对象模型,则请求必须模拟调用用户的身份。SharePoint Foundation 将 ASP.NET 配置为自动模拟调用用户,但如果您暂停模拟(例如,通过调用 Windows API 的 RevertToSelf 函数或通过调用 System.Security),您的代码可能会意外运行或失败。 Principal.WindowsIdentity.Impersonate 方法并将 IntPtr.Zero 作为用户令牌参数的值传递。即使您的代码没有明确恢复为自我,它可能会在它恢复为自身后被 ASP.NET 调用,例如在实现虚拟路径提供程序时发生;如果您的代码没有模拟调用用户,它可能无法正常运行。

线程安全

此类型的任何公共静态(在 Visual Basic 中为 Shared)成员都是线程安全的。不保证任何实例成员都是线程安全的。

构造函数:

    Name    Description
Public method   SPSite(Guid)    Initializes a new instance of the SPSite class based on the specified ID for a site collection.
Public method   SPSite(String)  Initializes a new instance of the SPSite class based on the specified URL.
Public method   SPSite(Guid, SPUrlZone)     Initializes a new instance of the SPSite class based on the specified site collection GUID and URL zone.
Public method   SPSite(Guid, SPUserToken)   Initializes a new instance of the SPSite class based on the specified site collection GUID and user token.
Public method   SPSite(String, SPUserToken)     Initializes a new instance of the SPSite class based on the specified absolute URL and user token.
Public method   SPSite(Guid, SPUrlZone, SPUserToken)    Initializes a new instance of the SPSite class based on the specified site collection GUID, URL zone, and user token.
于 2012-05-24T14:33:11.670 回答