代码之家  ›  专栏  ›  技术社区  ›  Maxime Rouiller

SPSite构造函数的FileNotFoundException

  •  22
  • Maxime Rouiller  · 技术社区  · 16 年前

    SPSite http://mysite:80/ )。我还确保帐户正在运行 MyApp.exe Site Collection Administrator

    然而,我不能举例说明 硅钙石 FileNotFoundException

    有人有主意吗?

    在 Microsoft.SharePoint.SPSite..ctor(SPFarm 服务器场,Uri请求Uri,布尔值 contextSite,SPUserToken userToken)
    在 Microsoft.SharePoint.SPSite..ctor(字符串 请求URL)位于 项目)在 C:\Workspaces\MyCompanyName\Development\Main\MyCompanyName.SharePoint\Service\HelperClass.cs:line

    另一个旁注。。。我有一个Web应用程序+网站集,可以通过浏览器毫无问题地访问。

    21 回复  |  直到 9 年前
        1
  •  14
  •   Lars Fastrup    16 年前

    SharePoint在SharePoint配置数据库中找不到请求的网站集时引发FileNotFoundException。我猜您还没有在URL上创建网站集 http://mysite:80 . 如果我尝试用不存在的网站集的URL实例化一个新的SPSite对象,我会看到以下堆栈跟踪:

    System.IO.FileNotFoundException : The site http://server/sites/bah could not be found in the Web application SPWebApplication 
    Name=SharePoint - 80 Parent=SPWebService.
    at Microsoft.SharePoint.SPSite..ctor(SPFarm farm, Uri requestUri, Boolean contextSite, SPUserToken userToken)
    at Microsoft.SharePoint.SPSite..ctor(String requestUrl)
    

        2
  •  12
  •   Charles Chen    14 年前

    将生成属性中的平台目标更改为x64为我在SharePoint 2010上解决了此问题。

        3
  •  10
  •   Olof Szymczak    15 年前

    阅读本网站 http://community.bamboosolutions.com/forums/t/8179.aspx 如果您正在运行OS x64位,并且正在使用MSTest(32位),那么它将失败,请使用nunit works!!!

        4
  •  4
  •   user379310    14 年前

    用户权限 SharePoint网站

    Sharepoint服务器

    数据库 ---Sharepoint内容数据库(网站集数据库)-数据库所有者权限

    在我的博客上读更多

    http://sharepointinstallation.blogspot.com/2010/12/minimal-permission-required-to-execute.html

        5
  •  4
  •   Lester    14 年前

    如果是访问SharePoint 2010的控制台应用程序,请确保项目的生成目标为x64,.NET Framework为3.5。

        6
  •  2
  •   Mick    16 年前

    对象模型也可能不喜欢您提供的URL。如果您没有为它提供创建网站集的确切URL,或者在您的备用访问映射中配置了在中列出的确切URL,它将抛出一个可能不一定有意义的异常。对你来说,你可以试试 http://mysite http://machinename .

        7
  •  1
  •   axk    16 年前

        8
  •  1
  •   vIceBerg    16 年前

    检查你的web.config,看看是否有一个配置文件丢失了。

    在你的12个蜂巢里寻找日志。如果日志设置正确,则会丢失文件。

    编辑:同时检查您的所有DLL是否都在GAC中。检查web.config文件是否包含所有信息:名称空间、类名、名称空间、版本=版本号、区域性-您的区域性、PublicKeyToken=您的\u签名\u标记

        9
  •  1
  •   axk    16 年前


    我在拍《摩丝2007》。
    因此,例如,当您 http://webapp/sites/site “还有” http://weabapp:22345 “当您调用时,当前选择(上次在该选择器中选择它时)

    SPSite site = new SPSite("http://webapp/sites/site")
    

    它尝试实际为“创建站点对象” http://webapp:22345/sites/site

        10
  •  1
  •   vibloggers    14 年前

    我也有同样的问题。我想用我的用户id运行控制台应用程序。我是web应用程序所有者+服务器场管理员。仍然无法运行应用程序。

    这个问题由

    1. 将生成属性中的平台目标更改为x64

        11
  •  1
  •   Hernan Veiras    13 年前

    您可以将项目编译目标设置为“任意CPU”。重要的是将MSTest主机进程配置为以64位运行。打开.testsettings文件,转到“主机”选项卡并设置“以64位运行测试…”

        12
  •  1
  •   Aaron Milan Rakos    11 年前

    我们有同样的问题,但我熟悉不同的原因,这里是一个总结:

    1. 您可能键入错误或输入了错误的地址
    2. 运行该进程的用户帐户没有所需的权限,这些权限包括:对SharePoint网站的读取权限、SharePoint配置数据库的dbo以及内容数据库。
    3. 在64位服务器上构建时,该进程必须是64位进程(默认为64位“任意CPU”)。
    4. 该过程必须以.NET 3.5为目标
        13
  •  0
  •   slf    16 年前

    我的问题的解决方案是在GAC中注册SharePoint 12.0.0.0程序集。听起来和你的问题不一样,但仅供参考。

        14
  •  0
  •   Androsius Androsius    15 年前

    几天前我们遇到了同样的问题,解决方案是将尝试创建de-SPSite对象的应用程序设置为使用Sharepoint的web应用程序所使用的相同AppPool。

    希望能有帮助。

        15
  •  0
  •   John Fields    15 年前

    对我来说,x64问题的MSTest是导致此问题的原因。在控制台应用程序中工作。

        16
  •  0
  •   Kiran    15 年前

    我也有类似的问题。

    在我的场景中,我能够从控制台应用程序创建SPSite实例,但是当另一个团队成员尝试这样做时,应用程序抛出了与上述相同的异常。

    解决方案:我添加了另一个队友作为Content Db server box上的管理员(这可能不适用于所有人),代码工作正常,没有错误

        17
  •  0
  •   AshesToAshes Alex    12 年前

        18
  •  0
  •   ndhar    11 年前

    切换到NUnit可能不是每个人的选择。
    在我的例子中,问题是我在64位服务器上,我检查了所有CPU(因此它选择了正确的版本),但我的测试设置设置为“强制测试在32位进程中运行”(GAH!)

    在MSTest中,转至TEst->编辑测试设置->跟踪和测试影响。
    选择主机。
    确保您运行的是正确的版本。 Here's what you should be picking

    这是我的VS2010 SP1检查表,MSTest。

    • 确保站点加载-我直接从VS2010编辑器启动了站点,因为它是一个超链接
    • 验证测试设置是否支持正确的位。
        19
  •  0
  •   Terry B    10 年前

    我在尝试访问Sharepoint 2010时遇到了同样的问题。

    我将目标框架更改为.NET 3.5.-这是Sharepoint 2010支持的版本,从而修复了此问题。

        20
  •  0
  •   NorthGork    10 年前

    在以管理员身份运行的SharePoint命令行管理程序中尝试此命令:

    http://yoursite/yourcollection '

    如果出现错误,请以应用程序池用户或用于安装SharePoint的帐户身份登录SharePoint服务器,然后重试上述命令。

    如果有效,则您知道您以前的帐户存在权限问题。要解决此问题,请在同一shell窗口中运行此命令,并提供要在VS中使用的帐户:

    添加SPShellAdmin-用户名域\用户

        21
  •  0
  •   Suraj Rao Raas Masood    6 年前

    我也遇到了同样的问题,我做了以下更改,它开始工作。

    1. 将visual studio中的平台目标更改为x64
    2. 确保您正在“管理员”模式下运行visual studio。