SharePoint开发的噩梦

时间:2011-06-21 14:05:53

标签: sharepoint

我以为我会给SharePoint开发提供支持,以扩展我对Microsoft技术的理解,并陷入我拒绝理解的境地。

我创建了一个新的Web应用程序:http://localhost:11523并根据需要设置网站集。我可以很好地浏览网站,没有任何问题,但现在我想开始使用对象模型进行开发。

是的,所以在我与SPSite site = new SPSite("http://localhost:11523");挣扎之后,我认为我没有以提升的权限运行VS2008,所以重新启动VS我终于更进了一步。

每当我进入我的代码时,我得到:

  

Web应用程序   http://localhost:11523/不可能   找到。

我没有运气就用Google搜索了这个。应用程序绝对存在,我可以浏览它,添加Web部件并发疯。我似乎无法通过Visual Studio连接到它。

任何想法都会很棒。

  

修改

我以为我将我的方法(称为“GetListFromSharePoint(字符串名称)”)隔离到一个测试方法(nUnit Framework)中,并且我惊讶地从列表中返回了9个条目,如预期的那样。当我将方法转回我的Web应用程序(而不是SharePoint,尝试通过普通网站测试复合控件)时,并遇到上述问题。

这是在SharePoint 2007中,我正在使用安装了SharePoint 2007的同一台计算机上进行开发。

由于某种原因,这种方法过去常常无法识别SharePoint。测试存根工作查找,而不是Web应用程序。

  

编辑2

所以在那里我“错过了”一些事情,这种问题本身解决了这个问题。

首先,我在x64 Windows 2008的盒子上开发,因此SharePoint 2007以x64模式运行。事实证明,Cassini是32位,无论你运行它的平台,都会导致一些编译器错误(我没有安装IA64编译器)。安装完成后,我发现SharePoint已禁用默认网站(localhost:80)。

重新启用默认网站,允许我将我的Web应用程序创建为针对它的虚拟目录,这允许我的调试器编译器在x64中运行。

我的下一个挑战是访问权限。由于端口80上的任何新虚拟目录都分配给默认应用程序池,因此假定用户没有正确的权限,因此我必须将我的Web应用程序更改为在SharePoint Web应用程序的应用程序池下运行。

我要做的最后一件事是使用提升的权限运行我的SharePoint代码。

像魅力一样工作:D

请注意!在SharePoint Web应用程序上启用调试....

谢谢,

埃里克

2 个答案:

答案 0 :(得分:3)

(您尚未指定版本 - 假设是SharePoint 2010)。

您需要确定要使用的对象模型:

  • 客户端(能够从任何其他计算机访问服务器)
  • 服务器(您现在正在尝试的服务器,只能在本地运行)。

您的代码无效的大多数原因:

  • 在网址中使用“localhost”而不是“”计算机名称“。(我相信这是原因。)
  • 您运行的代码与SharePoint不在同一台计算机上
  • 您正在非管理员帐户下运行代码

查看在“管理中心”网站中如何配置网站集 - 与每个网站集关联的网址列在那里 - 确保使用正确的网址。

您还可以尝试枚举SPWebApplication中的所有网站集(http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.spwebapplication.sites.aspx)以开始显示。

答案 1 :(得分:0)

我不认为SPSite通过IIS连接,如果SharePoint没有设置为响应localhost(在管理中心中完成),您将无法连接到该URL。 IIS在这里工作有点不同,因为它将信号中继到“localhost”到“web应用程序实例”。

首先签入SharePoint管理中心。转到“系统设置”部分中的“配置备用访问映射”。这里有SharePoint实例,有三个属性可以直接在列表中看到; “内部网址”,“区域”和“区域的公开网址”。

如果内部URL未设置为Localhost,您将无法使用您建议的连接。将此更改为另一个URL也是不合适的,所以只需尝试设置您的SPSite站点=新SPSite(“http:// yourinternalurl:11523”);对那个盒子里的东西! :)

干杯