Sharepoint に接続する Web サービスに次のコードがあります。
string response = string.Empty;
SPSecurity.RunWithElevatedPrivileges(new SPSecurity.CodeToRunElevated(delegate()
{
using (SPSite spsite = new SPSite("http://sharepoint/"))
{
using (SPWeb spweb = spsite.OpenWeb("sites/" + site))
{
spweb.AllowUnsafeUpdates = true;
SPFolder spfolder = spweb.GetFolder(path);
/* The following value will always be set to FALSE
* but the next time spfolder.Exists is called, the
* returned value will be true.
*/
//bool exists = spfolder.Exists;
if (spfolder == null || !spfolder.Exists)
response = "Folder Does Not Exist!";
else
response = "Folder Exists!";
}
}
}
return response;
上記のコードは、最初から段階的にデバッグすると完全に正常に動作します。デバッグせずに実行した場合、またはコードの後半にブレークポイントを配置した場合、SPFolder.Exists 値は常に false に設定されますが、実際には true である必要があります。上記の行のコメントを外すと、正常にbool exists
動作します。
ここで私が間違っていることはありますか?