【发布时间】:2015-11-27 05:11:54
【问题描述】:
我在 asp.net 应用程序的 Windows 服务中创建了一个方法。
public static bool Test(string url)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "HEAD";
try
{
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
resp.Close();
return true;
}
catch
{
return false;
}
}
JurisdictionBL jbl = new JurisdictionBL(0);
DataSet jds = new DataSet();
jbl.FetchAll(jds);
foreach (DataTable table in jds.Tables)
{
foreach (DataRow dr in table.Rows)
{
var jId = dr["Jurisdiction"].ToString();
var jurl = dr["URL"].ToString();
if (Test(jurl))
{
jbl.IsValidUrlTrue(Convert.ToInt32(jId));
}
else
{
jbl.IsValidUrlFalse(Convert.ToInt32(jId));
}
}
}
整个应用程序不起作用。它卡住了。基本上我在表 tbJurisdiction 中有一个字段“IsValidURL”和一个需要不断检查它们是否工作的字段 URL。如果它们不起作用,则 IsValidURL 应该变为 false。它也没有正确检查任何网址。如果任何 url 无效,它仍然显示 isvalidURL Feild true
请帮帮我!!!
【问题讨论】:
-
您只是想验证 URL 格式还是想检查 url 是否存在?
-
我要检查 url 是否存在?
-
卡住了,在哪里?可能在 req.GetResponse() ?在 jbl.FetchAll() 处?
-
在 req.GetResponse() 处是。它卡在 Test method()...
-
您所在的司法管辖区列表中有多少个 ID?您正在同步阻塞调用整个列表的 Web 服务器,很明显,如果您有很多,您的应用程序将等待很长一段时间而没有任何 UI 更新。尝试使用 httpwebrequest 类提供的异步方法。您绝对应该更改您的应用程序以异步检查这些 Url 的可用性