ASP.Net Проверка наличия удаленного файла - PullRequest
1 голос
/ 24 марта 2011

У меня есть сайт ASP.Net со ссылками на файлы, хранящиеся на файловом сервере. Эти файлы постоянно изменяются, и поэтому ссылки не всегда будут действительными, включая изменения в разрешениях, перемещаемых или удаляемых файлах и т. Д. Я реализовал метод в коде для проверки достоверности этих ссылок по мере их создания, в случае неудачи код добавит CSS для изменения цвета ссылки:

Проверьте URL

    /// <summary>
    /// Check if a URL exists. Method by http://www.vcskicks.com/check-website.php
    /// </summary>
    /// <param name="url">URL to validate</param>
    /// <returns>True if the URL was resolved, false otherwise</returns>
    private static bool validURL(string url)
        {
            Uri urlCheck = new Uri(url);
            WebRequest request = WebRequest.Create(urlCheck);
            request.Timeout = 5000;//Timeout set to 5 seconds

            WebResponse response;
            try
            {
                response = request.GetResponse();
                if (request.RequestUri != response.ResponseUri)
                    return false;

                return true;
            }
            catch (Exception e)
            {
                if (e.Message.Contains("denied"))
                    return true; //url exists but access is denied
                else
                    return false; //url does not exist
            }

}

Вызов вышеуказанного метода

link.NavigateUrl = "file://" + serverLocation;
                        //MODIFICATION 3/21/11 - change link to DarkRed if it is not valid
                        if (!validURL(link.NavigateUrl))
                        {
                            link.Attributes.Add("style", "color: DarkRed");
                        }

Моя проблема в том, что не все недействительные ссылки получают стиль, добавленный к ним. Странно то, что когда я выполняю метод в режиме отладки, используя одну из плохих ссылок, которые не были окрашены, метод возвращает false и окрашивает ссылку, как и ожидалось. Это намного сложнее, чем то, что я представляю выше, но я искал весь код aspx за любыми другими местами, где устанавливается ссылка, и не мог найти ни одного. Я не знаю, происходит ли какая-то постобработка, которая каким-то образом очищает любые стили, которые были применены к некоторым ссылкам. Тот факт, что некоторые ссылки окрашены, а другие нет, меня очень смущает. Кто-нибудь еще сталкивался с подобным поведением раньше?

1 Ответ

0 голосов
/ 24 марта 2011
...