Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何测试用ASP.Net编写的网站是否仍然有效?_C#_Asp.net_Httpwebrequest_Httpwebresponse_Connectivity - Fatal编程技术网

C# 如何测试用ASP.Net编写的网站是否仍然有效?

C# 如何测试用ASP.Net编写的网站是否仍然有效?,c#,asp.net,httpwebrequest,httpwebresponse,connectivity,C#,Asp.net,Httpwebrequest,Httpwebresponse,Connectivity,我需要编写一个简单的WinForms应用程序,可以启动它来测试一个网站是否仍处于活动状态,以及该网站是否能够从数据库中读取数据 我正在使用c#中的整个“(HttpWebResponse)myHttpWebRequest.GetResponse()”东西来测试该站点是否处于活动状态,但我不知道如何在我的网站中获得一个测试页面来向“响应”写入内容,以表明它能够测试自己与数据库的连接 以下是我的Winforms端的示例代码(摘自MSDN): 私有void CheckUrl() { 尝试 { HttpW

我需要编写一个简单的WinForms应用程序,可以启动它来测试一个网站是否仍处于活动状态,以及该网站是否能够从数据库中读取数据

我正在使用c#中的整个“(HttpWebResponse)myHttpWebRequest.GetResponse()”东西来测试该站点是否处于活动状态,但我不知道如何在我的网站中获得一个测试页面来向“响应”写入内容,以表明它能够测试自己与数据库的连接

以下是我的Winforms端的示例代码(摘自MSDN):

私有void CheckUrl() { 尝试 { HttpWebRequest myHttpWebRequest=(HttpWebRequest)WebRequest.Create(“http://www.google.com"); HttpWebResponse myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse(); myHttpWebResponse.Close(); label1.Text=myHttpWebRequest.Address.AbsoluteUri; } 捕获(WebE例外) { label1.Text=“此程序在成功运行时应引发WebException。”+ “\n\n异常消息:”+e.消息; if(e.Status==WebExceptionStatus.ProtocolError) { label1.Text=String.Format(“状态代码:{0}”,((HttpWebResponse)e.Response).StatusCode); label2.Text=String.Format(“状态描述:{0}”,((HttpWebResponse)e.Response).StatusDescription); } } 捕获(例外e) { 标签1.Text=e.信息; } } 我希望在webform方面得到一些帮助,以便返回到上面的代码

谢谢你们提供的帮助

  • 理查德

您可以在项目内部创建一个名为IAMLIVE的Web服务,并让它返回一个字符


在WinForms区域中,使用上述Web服务,如果它有效,则您的站点处于活动状态。

您可以在项目内部创建一个名为IAMLIVE的Web服务,并让它返回一个字符


在您的WinForms区域,使用上述web服务,如果它起作用,您的站点就处于活动状态。

根据Papuccino回答的本质:您可以通过使用
[WebMethod]
属性标记web服务来创建嵌入在web表单页面后面的C代码中的web服务。这些将驻留在web应用程序中,而不仅仅是服务器。

根据Papuccino回答的本质:您可以通过使用
[WebMethod]
属性标记web表单页面,来创建嵌入到web表单页面后面的C代码中的web服务。这些将驻留在web应用程序中,而不仅仅是服务器。

当您的站点出现故障时会发生什么?它是否返回500状态码或超时

另一种看待它的方式是:如果它成功了,它是否总是做一些预期的事情

您可能会调用web应用程序中的URL,您知道该URL将返回200响应代码,或者如果工作正常,响应中将包含一些预期的HTML标记

让您的winform调用此URL并检查Response.status或输出缓冲区中的文本,以获得预期的标记。您还应该在httprequest中创建一个超时。如果页面未在超时时间内加载,您将收到一个web异常,您将知道该站点正在失败


此外,如果您有预算,还有像gomez.com这样的外部监控服务可以实现自动化,并提供站点可用性报告。

当您的站点出现故障时会发生什么?它是否返回500状态码或超时

另一种看待它的方式是:如果它成功了,它是否总是做一些预期的事情

您可能会调用web应用程序中的URL,您知道该URL将返回200响应代码,或者如果工作正常,响应中将包含一些预期的HTML标记

让您的winform调用此URL并检查Response.status或输出缓冲区中的文本,以获得预期的标记。您还应该在httprequest中创建一个超时。如果页面未在超时时间内加载,您将收到一个web异常,您将知道该站点正在失败


此外,如果您有预算,还可以通过gomez.com等外部监控服务实现自动化,并提供站点可用性报告。

让您的Web表单页面打开数据库连接并执行一些简单/低影响的操作,例如

select SystemTableId from dbo.[SystemTable] where SystemTableId = 1
其中SystemTable是一个单行表


如果页面出于任何原因引发异常,请响应。写入异常消息,否则请响应。写入(“成功”)或类似消息。

让您的Web表单页面打开数据库连接并执行一些简单/低影响的操作,例如

select SystemTableId from dbo.[SystemTable] where SystemTableId = 1
其中SystemTable是一个单行表


如果页面因任何原因引发异常,请回复。写异常消息,否则请回复。写(“成功”)或类似内容。

@chard O'Neil:希望你不介意我问:你这样做是因为你的网站确实崩溃了吗?嘿,米奇。是的,这个网站已经过时了,我们正试图找出是什么原因造成的,但是与此同时,我们可以重置W3WP服务,站点又恢复了。这是一个老网站,使用Borland的BDP的旧版本进行数据库连接到ButoBASE,它看起来像我们正在做的事情正在使它在中午的时候剥落。@查德.奥尼尔:希望你不会介意我问:你这样做是因为你的网站掉下来了吗?嘿,米奇。是的,这个网站已经过时了,我们正试图找出是什么原因造成的,但是与此同时,我们可以重置W3WP服务,站点又恢复了。这是一个老网站,使用旧版本的Borland公司的BDP数据库连接到ButBASE,它看起来像我们正在做的事情使它在白天中剥落。嗨。我们想到了这一点,但服务器似乎没有崩溃,这是一个特定的网络应用程序。当我们试图解决具体问题时,我们只需要全天关注站点。谢谢你的回复。嗨。我们想过这个,但它