检测您的操作系统在C#中安装了哪个版本的IE?

我目前正在管理一个Windows服务,该服务以编程方式生成HttpWebRequest和HttpWebResponse对象,以检索请求的响应消息。

HttpWebRequest的UserAgent属性被硬编码为使用IE 6作为浏览器代理。 是一种通过程序方式检测托管服务的服务器上安装的IE版本的方法吗?

它目前托管在Windows Server 2003计算机上,可能安装在Windows Server 2008计算机上。

您也可以从WebBrowser控件本身中提取它,如果您创建了一个:

 WebBrowser browser = new WebBrowser(); Version ver = browser.Version; 

警告:必须从STA线程调用此方法,否则会引发exception。 这可以在MSTest清理代码中遇到,它是MTA,而不是STA。

看起来可以设置用户代理: http : //msdn.microsoft.com/en-us/library/system.net.httpwebrequest.useragent.aspx

我最喜欢WebClient类,它是HttpWebRequest的包装器,允许你用更少的代码做一些事情: http : //msdn.microsoft.com/en-us/library/system.net.webclient.aspx