我以为我会给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应用程序上启用调试....
谢谢,
埃里克
答案 0 :(得分:3)
(您尚未指定版本 - 假设是SharePoint 2010)。
您需要确定要使用的对象模型:
您的代码无效的大多数原因:
查看在“管理中心”网站中如何配置网站集 - 与每个网站集关联的网址列在那里 - 确保使用正确的网址。
您还可以尝试枚举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”);对那个盒子里的东西! :)
干杯