- PR -

ASP.Net2.0 外部ページのリンク切れの判定

1
投稿者投稿内容
fds
会議室デビュー日: 2007/09/16
投稿数: 15
投稿日時: 2008-01-12 13:55
ASP.Net2.0にて、リンク集のようなサイトを開発しております。

DBには自ドメイン以外の様々なURLが登録されているのですが、それらの中にリンク切れの物があれば、そのレコードを自動で削除する一括処理を作成したいのです。

しかしその方法が見つからず悩んでおります。
何かいい方法はないでしょうか?
kiyokura
ベテラン
会議室デビュー日: 2007/08/08
投稿数: 69
お住まい・勤務地: 岡山
投稿日時: 2008-01-12 14:34
単純に考えれば、『DBにアクセスしてレコードを舐めながらURLにアクセスし、404等が帰ってくるようならリンク切れとみなして削除する』ようなアプリケーションを作成し、定期実行させれば良いように思えます。


ただ、どういった時(タイムアウトやステータスコード)にリンク切れとみなすか等については、一概には言えないかもしれないので、悩みどころかもしれませんが……。


それよりもまず、どういったところで悩んでおられるのか、具体的に書かれたほうが回答が得られやすいように思えます。
(ざっくりとした方法のレベルでなのか、リンク切れの判断をどういった仕様にするかの点なのか、実装レベルでどういったクラスやメソッドで実現するなのか……。)

fds
会議室デビュー日: 2007/09/16
投稿数: 15
投稿日時: 2008-01-12 14:40
お返事ありがとうございます。

私が分からず詰まっているのは、「URLにアクセスし、404等が帰ってくる」部分の実際のコーディングです。

どういったコードを書けば、指定URLにリクエストをとばして「404」等を取得できるのかが分かりません。
kiyokura
ベテラン
会議室デビュー日: 2007/08/08
投稿数: 69
お住まい・勤務地: 岡山
投稿日時: 2008-01-12 15:12
実際自分でやってみたことはなく、MSDNのドキュメントとWebで検索してみただけの回答で申し訳ないですが……。

HttpWebRequestとHttpWebResponseでできそうに思えます。HttpWebRequest.GetResponse()でとってきたものをHttpWebResponseにキャストしてやると、HttpWebResponse.StatusCodeでステータスコードが取得できそうに読み取れます。


以下のスレッドが参考になりそうです。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=5763&forum=7
fds
会議室デビュー日: 2007/09/16
投稿数: 15
投稿日時: 2008-01-14 07:03
ご返信ありがとうございます。
色々と試行錯誤した結果、どうやらこれをベースでいけそうです。
本当にありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)