在Sharepoint 2010安装中,我们尝试抓取小型单节点SharePoint安装的内容。爬行部分成功。我们能够检索从Web服务(_vti_bin / sitedata.asmx)传递的数据,但是当爬网程序尝试访问整个页面内容时,它将失败。抓取日志中显示的错误消息是:
抓取工具无法与服务器通信。检查服务器是否可用以及是否正确配置了防火墙访问。
ULS中记录的错误是:
08/27/2010 01:52:02.92 mssdmn.exe(0x0A7C)0x03E4 SharePoint Server搜索HTTP协议处理程序du54高CHttpAccessorHelper :: InitRequestInternal - 请求“http://staging.dsr.dk/_layouts/error.aspx”身份验证时的意外状态(500)1 。[httpacchelper.cxx:657] d:\ office \ source \ search \ native \ gather \ protocols \ http \ httpacchelper.cxx
08/27/2010 01:52:02.92 mssdmn.exe(0x0A7C)0x03E4 SharePoint Server搜索PHSts dv44高CSTS3Accessor :: Init:URL http://staging.dsr.dk/Pages/Forside.aspx的InitRequest失败返回给调用者的错误,hr = 80041206 [sts3acc.cxx: 546] d:\ office \ source \ search \ native \ gather \ protocols \ sts3 \ sts3acc.cxx
08/27/2010 01:52:02.92 mssdmn.exe(0x0A7C)0x03E4 SharePoint Server搜索PHSts dvb1高CSTS3Accessor :: Init失败,Url sts4://staging.dsr.dk/siteurl=/siteid= {a78b7d4f-059f- 4484-8564-449cd12a97cf} / weburl = / webid = {1189e380-76fd-44b7-99a2-ebd4f7245c3d},hr = 80041206 [sts3handler.cxx:312] d:\ office \ source \ search \ native \ gather \ protocols \ sts3 \ sts3handler.cxx
08/27/2010 01:52:02.92 mssdmn.exe(0x0A7C)0x03E4 SharePoint Server搜索PHSts dvb2高CSTS3Handler :: CreateAccessorExD:向调用者返回错误,hr = 80041206 [sts3handler.cxx:330] d:\ office \ source \搜索\天然\收集\协议\ STS3 \ sts3handler.cxx
我们已根据_http://support.microsoft.com/kb/896861(方法1)配置了系统。
我们已经使用Fiddler2来查看HTTP流量,这看起来很正常,即我们可以看到对_vti_bin /的所有请求......但是上面显示的请求,对于sts4协议,并没有被Fiddler2捕获。有关如何调试STS4流量的提示将受到欢迎。
有关如何使抓取工具成功抓取整页内容的任何建议吗?
谢谢!
托马斯
答案 0 :(得分:1)
事实证明,提示位于ULS日志的稍高处:
意外的System.FormatException:输入字符串的格式不正确。 System.Number.StringToNumber(String str,NumberStyles options,NumberBuffer& number,NumberFormatInfo info,Boolean parseDecimal)at System.Number.ParseInt32(String s,NumberStyles style,NumberFormatInfo info)at System.Convert.ToInt32(String value)at at位于DSR.Portal.Core.Service.Identity.DSRMembershipUser的DSR.Portal.Core.Service.Identity.DSRMembershipProvider.GetUser(String username,Boolean userIsOnline)中的DSR.Portal.Core.Service.Identity.IdentityUtility.GetMember(String memberNumberOrCPR) .get_Current()
我们已经实现了一个自定义MembershipProvider,它期望用户ID为数字。对于Windows Authenticated用户,此操作失败,抛出上述堆栈跟踪。因此,抓取工具帐户无法检索网页,这导致了“收集者”的问题。
故事的士气:始终确保Windows身份验证有效。
此致
托马斯