C# 以编程方式检查IIS7启动屏幕
我有一个ASP.NET3.5Web应用程序(C#),我需要以编程方式检查我们的另一个网站(不是ASP.Net)是否已启动并正在运行。目前,我有一个带有以下代码的方法,用于检查状态代码是否为200。我遇到的问题是,出现的IIS7启动页面返回的状态代码为200,而我在response对象中没有看到任何其他允许我验证实际显示的页面的内容。我希望避免返回响应,而使用StreamReader只是在页面上查找div来验证它的有效性(如果可能),就像他们在link中所做的那样(类似)C# 以编程方式检查IIS7启动屏幕,c#,asp.net,http,C#,Asp.net,Http,我有一个ASP.NET3.5Web应用程序(C#),我需要以编程方式检查我们的另一个网站(不是ASP.Net)是否已启动并正在运行。目前,我有一个带有以下代码的方法,用于检查状态代码是否为200。我遇到的问题是,出现的IIS7启动页面返回的状态代码为200,而我在response对象中没有看到任何其他允许我验证实际显示的页面的内容。我希望避免返回响应,而使用StreamReader只是在页面上查找div来验证它的有效性(如果可能),就像他们在link中所做的那样(类似) 非常感谢您的帮助。调查其
非常感谢您的帮助。调查其他应用程序返回的标题。与IIS初始屏幕相比,它很可能会有一些额外的标题。例如,它可以指定
缓存控制
。如果您的响应没有该标题,您可以期望它是启动屏幕。只需阅读响应
它已经在那里等待
Stream s = response.GetResponseStream();
StreamReader r = new StreamReader(s);
string html = r.ReadToEnd();
// IIS7
if(html.Contains(@"<div id=""container"">
<a href=""http://go.microsoft.com/fwlink/?linkid=66138&clcid=0x409""><img src=""welcome.png"" alt=""IIS7"" width=""571"" height=""411""></a>
</div>") {
}
streams=response.GetResponseStream();
StreamReader r=新的StreamReader;
字符串html=r.ReadToEnd();
//IIS7
如果(html.Contains)(@)
") {
}
您不想阅读回复的原因是什么?您已经提出了请求并收到了回复-只需5或6行代码就可以阅读回复并寻找是否符合您期望的迹象。@JoeEnos出于某种原因,我想我需要再次提出请求以获取该信息,但是你说得对。谢谢!没问题。我总是觉得HttpWebRequest/HttpWebResponse
语法有点奇怪-当你阅读响应流时,它确实看起来像是在做额外的事情,而实际上你并没有。其他一些替代方法(WebClient
和更新的HttpClient
)更好地阅读回复。是的,这是一个“废话”片刻。谢谢!我可能会调整代码以检查我们的页面,因为我们的客户可以使用IIS6或IIS7。此外,如果出现任何边缘情况,它也会处理这些情况。是的,这只是一个简单的示例,根据您要调整的IIS版本。很高兴它有帮助
Stream s = response.GetResponseStream();
StreamReader r = new StreamReader(s);
string html = r.ReadToEnd();
// IIS7
if(html.Contains(@"<div id=""container"">
<a href=""http://go.microsoft.com/fwlink/?linkid=66138&clcid=0x409""><img src=""welcome.png"" alt=""IIS7"" width=""571"" height=""411""></a>
</div>") {
}