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