次のように通常の URL を検証しています。
private static bool IsUrlAvailable(string url)
{
if ((string.IsNullOrEmpty(url.Trim()) == true) ||
(url.Trim().ToLower().Equals("http://")) ||
(url.Trim().ToLower().Equals("https://")))
{
return false;
}
if (!url.ToLower().StartsWith("http://") && !url.ToLower().StartsWith("https://"))
{
url = "http://" + url;
}
try
{
var req = (HttpWebRequest)WebRequest.Create(url);
req.Timeout = 15000;
req.Method = "HEAD";
using (var rsp = (HttpWebResponse)req.GetResponse())
{
if (rsp.StatusCode == HttpStatusCode.OK)
{
return true;
}
}
}
catch (Exception ex)
{
// Eat it because all we want to do is return false
}
// Otherwise
return false;
}
しかし、私は WebRequest.Create を使用しているため、アクセス許可が拒否された (404) エラーが原因で、イントラネット上の認証済み SharePoint URL が検証に失敗しています。SPSite.Exists
orを使用して検証できることがわかりOpenWeb
ましたが、これらは microsoft.sharepoint.dll でのみ利用可能であり、この DLL を使用せずにこれを行う方法があるかどうか疑問に思っていましたか?