我尝试的实例的实例 SPSite 在农场服务器在一定程(MyApp.exe)和我把它作为参数的整个URI(http://mysite:80/).我还确信,该帐户运行 MyApp.exeSite Collection Administrator.

然而,我不能让一个实例 SPSite 不管我试图做到的。它总是引发 FileNotFoundException.

任何人都有一个想法?

堆栈跟踪:

在 Microsoft。SharePoint。SPSite..构造函数(SPFarm 农场,Uri requestUri,布尔 contextSite,SPUserToken userToken)
在 Microsoft。SharePoint。SPSite..构造函数(String requestUrl)在 MyCompanyName.服务。HelperClass.GetItemStateInSharePoint(SharePointItem 项目)在 C:\工作区\MyCompanyName\发展\主\MyCompanyName.SharePoint\服务\HelperClass.cs:线 555

另一个侧面说明...我有一个网应用程序+网站收集的,我可以通过浏览器没有任何问题。

有帮助吗?

解决方案

当SharePoint无法在SharePoint配置数据库中找到请求的网站集时,会抛出FileNotFoundException。我的猜测是您尚未在网址 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)

指定网站集的正确URL或打开管理中心并创建新的网站集。

其他提示

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

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

如果它是访问SharePoint 2010的控制台应用程序,则确保项目的Build Target为x64,.NET Framework为3.5。

此问题更多是用户权限问题,提供以下权限

用户权限 SharePoint网站 ---最低读取权限

Sharepoint服务器 ---添加到WSS_ADMIN_WPG组

数据库 --- Sharepoint Content DB(网站集数据库) - db_owner权限                            Sharepoint配置数据库(共享点安装的配置数据库) - - db_owner权限

在我的博客中阅读更多内容

http://sharepointinstallation.blogspot.com/十二分之二千零一十/最小的许可要求的到execute.html

对象模型也可能不喜欢您提供的URL。如果您没有为其提供创建网站集的确切URL或您在备用访问映射中配置的确切URL,则会抛出可能不一定有意义的异常。在您的情况下,您可以尝试 http:// mysite http:// machinename

异常的Stacktrace会有所帮助。

我认为您可以通过禁用“仅我的代码”来了解它是什么文件以及发生了什么。在工具中 - >选项 - >调试并在调试器显示异常的调用堆栈时查看filename参数(如果你当然可以调试它),或者可能在异常消息中显示名称。

检查你的web.config并查看是否存在缺少文件的配置。

在12个蜂巢中查看日志。如果您的日志设置正确,则会丢失该文件。

编辑:检查您的所有DLL是否都在GAC中。检查您的web.config文件是否包含所有信息:namespace,Classname,NameSpace,Version = version_number,Culture-your_culture,PublicKeyToken = your_signed_token

我最近发现构造函数的这个问题可能是由构造函数的starnge行为引起的 我正在考虑MOSS 2007。 当您将完整站点URL传递给构造函数时,它似乎只是考虑URL的站点部分,选择Web应用程序选择器控件中“当前已选中”的Web应用程序。
因此,例如,当您有“ http:// webapp / sites / site ”时,并拥有“ http:// weabapp:22345 "当你打电话

时,当前被选中(你最后一次在这样的选择器中选择它)
SPSite site = new SPSite("http://webapp/sites/site")

它尝试为“ http:// webapp:22345 / sites / site <实际创建一个网站对象/ A>&QUOT;并失败。

我有同样的问题。我想用我的用户ID运行控制台应用程序。我是网络应用程序所有者+农场管理员。仍然无法运行该应用程序。

问题由

解决
  1. 将构建属性中的平台目标更改为x64

  2. 在网站设置中 - &gt;用户和权限 - &gt;网站集管理员有两个名字。删除了其他名称,它开始工作。

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

如果在此之后运行测试时VS告诉您没有,请再次删除并添加测试项目(我不知道更好的解决方法)

希望它有所帮助!

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

  1. 您可能输入错误或以其他方式输入了错误的地址
  2. 运行该进程的用户帐户没有所需的权限,这些权限是:读取SharePoint网站的权限,以及SharePoint Config数据库和内容数据库的dbo。
  3. 在64位服务器上构建时,进程必须是64位进程(默认值为64位“任何CPU”)。
  4. 该过程必须针对.NET 3.5
几个星期前,我被这个困扰了。最终,我发现无法找到的文件是SharePoint程序集本身。运行时无法通过后期绑定加载附属程序集。

我的问题的解决方案是在GAC中注册SharePoint 12.0.0.0程序集。这听起来不像是你的问题,但仅仅是我们。

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

希望它有所帮助。

x64问题上的MSTest是导致这个问题的原因。适用于控制台应用程序。

我有类似的问题。

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

解决方案:我在Content Db服务器框中添加了另一个队友作为管理员(这可能不是每个人都可以),代码工作正常且没有错误

SharePoint 2010上的相同问题。但问题出在我们访问SharePoint对象模型的Web服务上。此服务应在其下运行的应用程序池应该是服务器场管理员。

切换到关可能不是每个人的选择。
在我的情况下,问题是我是在64位服务器,我已任何CPU检查(所以这是选择正确的版本),但是我的测试设置的设定"力测试运行中的32位进程"(GAH!)

在MSTest,去试>编辑测试设置-追踪和试验的影响。
选择的主人。
确保你是对的正确版本。Here's what you should be picking

这里是我的清单VS2010SP1,MSTest.

  • 你需要SP1所以,你可以测试的目标。净3.5.它不会的工作。净4.0
  • 确保该网站载-我推出了网站直接从VS2010编辑,因为它是一个超级链接
  • 验证建立设置。选择64位,如果服务器64位。
  • 在我的情况下,我有64位服务器,但选择64将失败!这是我第一个线索。
  • 验证测试设置的支持的正确位。

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

我通过将Target Framework更改为.NET 3.5来修复它.-这是Sharepoint 2010支持的版本。

在我的情况下,这肯定是我登录到Windows的帐户的权限问题。

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

Get-SPSite' http:// yoursite / yourcollection '

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

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

Add-SPShellAdmin -UserName Domain \ User

我遇到了同样的问题,我在下面进行了更改并开始工作。

  1. 将visual studio中的平台目标更改为x64
  2. 确保您在“管理员”中运行visual studio模式。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top