2017-10-23 2 views
0

現在、MVC IDを使用するアプリケーションを開発しています。ユーザーは登録が可能なので、URLをデータベースに追加できます。Asp.net-mvcアイデンティティ - 2週間ごとに壊れたURLのデータベースをスキャンする

2週間ごとに手動でデータベースから削除できるように、データベースをスキャンし、壊れたURLを「フラグする」/「レポートする」スクリプトを含める最良の方法を知りたいと思います。

私はPHPでオンラインを見つけましたが、C#を使用してこれを行うのが理想的です。

誰も私がこれをやり遂げる方法を知っていますか?

ありがとう

答えて

0

このようなコードを実装する方法はたくさんあります。 私たちがする必要があるのは、ファイルをダウンロードしようとすることです。ファイルが存在しない場合(AKAリンクが壊れている場合)、例外が発生し、falseを返します。ここ

は一例です:

public bool checkWebsite(string URL) { 
    try { 
     WebClient wc = new WebClient(); 
     string HTMLSource = wc.DownloadString(URL); 
     return true; 
    } 
    catch (Exception) { 
     return false; 
    } 
} 

と使用方法:テストを実行する

//The checkWebsite command will return true: 
bool websiteExists = this.checkWebsite("https://www.google.com"); 
bool websiteExists2 = this.checkWebsite("https://www.beucbeiucbeuiceiuhc.com/nonExist"); 

FASTER方法は、GETリクエストのHEADリクエストinstadeを試みることです。このようにして、テストのスピードを向上させることができます。そのため

class MyClient : WebClient 
{ 
    protected override WebRequest GetWebRequest(Uri address) 
    { 
     WebRequest req = base.GetWebRequest(address); 
     req.Method = "HEAD"; 
     return req; 
    } 
} 


public bool checkWebsite(string URL) { 
    try { 
     MyClient wc = new MyClient(); 
     string HTMLSource = wc.DownloadString(URL); 
     return true; 
    } 
    catch (Exception) { 
     return false; 
    } 
} 
+0

ありがとう:ここ

は、そのメソッドのいくつかの例です。私は2週間ごとにそれをどのように設定するのですか?次に、壊れているURLのレポートを印刷しますか? – DBoi

+0

基本的には、dbからURLリストを取得するスクリプトにこのコードを置き、checkWebsite関数を使用してそれらを1つずつ処理する必要があります。その後、現在の日付のファイルに出力をエクスポートすることができます。 2週間ごとにコードを実行するscedualタスクですべてをラップします。 –

関連する問題