访问Lists.asmx webservice时出现MOSS 2007 404错误

时间:2010-10-29 14:54:35

标签: asp.net sharepoint sharepoint-2007 moss

目前我有一个ASP.net 4.0应用程序,其中我已经对MOSS 2007服务器进行了Web引用。当我从根应用程序访问任何lists.asmx方法时,一切正常。但是,如果我尝试将C#代码隐藏中的服务URL更改为子文件夹list.asmx的服务URL,然后访问any方法,我会收到404错误。但真正奇怪的是,如果我将我已更改的URL和手动插入IE并运行它,该服务加载正常(给我一个按预期可用的任何方法的列表。)

以下是我正在使用的代码的简要说明:

这有效:

 ListsService.Lists m_listService = 
 ICredentials m_credentials = CredentialCache.DefaultCredentials;
 m_listService.Credentials = m_credentials;
 // No change to URL, defaults to 'http://mosstest/SiteDirectory/RootApp/SubApp/_vti_bin/lists.asmx'
 XmlNode listColl = m_listService.GetListCollection();  // Works fine, gives me collection of lists in the root folder.

这不起作用:

 ListsService.Lists m_listService = 
 ICredentials m_credentials = CredentialCache.DefaultCredentials;
 m_listService.Credentials = m_credentials;
 m_listService.Url = "http://mosstest/SiteDirectory/RootApp/SubApp/Subfolder1/_vti_bin/lists.asmx";
 XmlNode listColl = m_listService.GetListCollection();  // Throws a 404 Not found error.

其他人遇到过类似的东西吗?

1 个答案:

答案 0 :(得分:0)

原来我试图访问List本身,而List本身不是一个应用程序。我正在学习这一点。但是我会注意到,无论URL如何,SP在通过浏览器访问时似乎都不会出现404错误。如果我键入类似“http://mosstest/SiteDirectory/RootApp/SubApp/Subfolder1/_vti_bin/lists.asmx”的内容,而SubFolder1不存在,它仍会提供一个“可用”方法列表,并运行就好像服务是确实存在。不确定为什么会这样做,但它确实引起了很多混乱。