.NET获取服务器信息,如服务器版本、IIS等

简介:
.NET获取服务器信息,如服务器版本、IIS版本、数据库大小、网站系统空间占用大小、网站部署路径等等

 

 .NET获取系统环境信息 


#region 返回操作系统信息 .net版本 数据库大小  程序大小等方法
     ///   <summary>
    
///  获取服务器系统信息
    
///   </summary>
     public  string GetOSVersion()
    {
        OperatingSystem os = Environment.OSVersion;
         return os.ToString();
    }

     ///   <summary>
    
///  获取服务器.net版本
    
///   </summary>
    
///   <returns></returns>
     public  string GetNetVersion()
    {
         return Environment.Version.ToString();
    }

     ///   <summary>
    
///  获取数据库大小
    
///   </summary>
    
///   <returns></returns>
     public  string GetDataBaseLength()
    {
         string fileFullPath = HttpContext.Current.Server.MapPath( " ~/App_Data/XXX.mdf ");
        FileInfo file =  new FileInfo(fileFullPath);
         return (Convert.ToDouble(file.Length) /  1024 /  1024).ToString( " N ") +  " M ";
    }

     ///   <summary>
    
///  递归文件目录,返回目录下所有文件大小
    
///   </summary>
    
///   <param name="d"> 传入的路径 </param>
    
///   <returns></returns>
     public  static  long DirSize(DirectoryInfo d)
    {
         long Size =  0;
         //  所有文件大小.
        FileInfo[] fis = d.GetFiles();
         foreach (FileInfo fi  in fis)
        {
            Size += fi.Length;
        }
         //  遍历出当前目录的所有文件夹.
        DirectoryInfo[] dis = d.GetDirectories();
         foreach (DirectoryInfo di  in dis)
        {
            Size += DirSize(di);    // 这就用到递归了,调用父方法,注意,这里并不是直接返回值,而是调用父返回来的
        }
         return (Size);
    }

     ///   <summary>
    
///  调用DirSize方法
    
///   </summary>
    
///   <returns></returns>
     public  string GetDirSize()
    {
         string fullPath = HttpContext.Current.Server.MapPath( " ~/ ");
        DirectoryInfo d =  new DirectoryInfo(fullPath);
         return (Convert.ToDouble(DirSize(d)) /  1024 /  1024).ToString( " N ") +  " M ";
    }
     #endregion

     #region 服务器相关属性
     ///   <summary>
    
///  服务器名称
    
///   </summary>
     public  string MachineName
    {
         get {  return HttpContext.Current.Server.MachineName; }
    }

     ///   <summary>
    
///  服务器操作系统
    
///   </summary>
     public  string ServiveSystem
    {
         get {  return GetOSVersion(); }
    }

     ///   <summary>
    
///  服务器IP地址
    
///   </summary>
     public  string ServiceIP
    {
         get {  return HttpContext.Current.Request.ServerVariables[ " LOCAL_ADDR "]; }
    }

     ///   <summary>
    
///  网站端口号
    
///   </summary>
     public  string ServicePort
    {
         get {  return HttpContext.Current.Request.ServerVariables[ " SERVER_PORT "]; }
    }

     ///   <summary>
    
///  服务器IIS版本
    
///   </summary>
     public  string ServiceIIS
    {
         get {  return HttpContext.Current.Request.ServerVariables[ " SERVER_SOFTWARE "]; }
    }

     ///   <summary>
    
///  服务器.NET解释引擎版本
    
///   </summary>
     public  string ServiceNetVersion
    {
         get {  return GetNetVersion(); }
    }

     ///   <summary>
    
///  服务器时间
    
///   </summary>
     public  string ServiceTime
    {
         get {  return DateTime.Now.ToString(); }
    }

     ///   <summary>
    
///  网站绝对路径
    
///   </summary>
     public  string ServicePath
    {
         get {  return HttpContext.Current.Request.ServerVariables[ " PATH_TRANSLATED "].ToString(); }
    }

     ///   <summary>
    
///  数据库大小
    
///   </summary>
     public  string DataBaseLength
    {
         get {  return GetDataBaseLength(); }
    }

     ///   <summary>
    
///  获取程序占用空间大小
    
///   </summary>
     public  string GetSystemLength
    {
         get {  return GetDirSize(); }
    }
     #endregion

 

 

.net遍历服务所有变量信息

< table  colspan ="8"  cellpadding ="5"  border ="0" >
< tr >
< td  align ="CENTER"  bgcolor ="#800000"  width ="20%" >
< font  style ="arial narrow"  color ="#ffffff"  size ="2" >环境变量名 </ font >
</ td >
< td  align ="CENTER"  width ="80%"  bgcolor ="#800000" >
< font  style ="arial narrow"  color ="#ffffff"  size ="2" >结果 </ font >
</ td >
</ tr >
<%
foreach (
string  val in Request.ServerVariables)
{
Response.Write(
" <tr> " );
Response.Write(
" <td bgcolor='f7efde' align=CENTER> <font style='ARIAL NARROW' size='2'> " );
Response.Write(val);
Response.Write(
" </font></td> " );
Response.Write(
" <td bgcolor='f7efde' align=CENTER> <font style='ARIAL NARROW' size='2'> " );
Response.Write(Request.ServerVariables[val]);
Response.Write(
" </font></td></tr> " );
}        
%>
</ table >

 

 

转载请注明出处[ http://samlin.cnblogs.com/] 
作者赞赏
 


刚做的招标网: 八爪鱼招标网 请大家多意见
标签:  服务器系统环境

本文转自Sam Lin博客博客园博客,原文链接:http://www.cnblogs.com/samlin/archive/2012/08/27/dotnet_get_server_info.html,如需转载请自行联系原作者
目录
相关文章
|
23天前
|
开发框架 JavaScript 前端开发
震撼!破解 ASP.NET 服务器控件 Button 执行顺序之谜,颠覆你的开发认知!
【8月更文挑战第16天】在ASP.NET开发中,通过Button控件实现先执行JavaScript再触后台处理的需求十分常见。例如,在用户点击按钮前需前端验证或提示,确保操作无误后再传递数据至后台深度处理。此过程可通过设置Button的`OnClientClick`属性调用自定义JavaScript函数完成验证;若验证通过,则继续触发后台事件。此外,结合jQuery也能达到相同效果,利用`__doPostBack`手动触发服务器端事件。这种方式增强了应用的交互性和用户体验。
33 8
|
23天前
|
开发框架 JavaScript 前端开发
揭秘:如何让你的asp.net页面变身交互魔术师——先施展JavaScript咒语,再引发服务器端魔法!
【8月更文挑战第16天】在ASP.NET开发中,处理客户端与服务器交互时,常需先执行客户端验证再提交数据。传统上使用ASP.NET Button控件直接触发服务器事件,但难以插入客户端逻辑。本文对比此法与改进方案:利用HTML按钮及JavaScript手动控制表单提交。后者通过`onclick`事件调用JavaScript函数`SubmitForm()`来检查输入并决定是否提交,增强了灵活性和用户体验,同时确保了服务器端逻辑的执行。
33 5
|
23天前
|
开发框架 缓存 .NET
并发请求太多,服务器崩溃了?试试使用 ASP.NET Core Web API 操作筛选器对请求进行限流
并发请求太多,服务器崩溃了?试试使用 ASP.NET Core Web API 操作筛选器对请求进行限流
|
5天前
|
开发框架 JavaScript 前端开发
|
13天前
|
API
【Azure Key Vault】.NET 代码如何访问中国区的Key Vault中的机密信息(Get/Set Secret)
【Azure Key Vault】.NET 代码如何访问中国区的Key Vault中的机密信息(Get/Set Secret)
|
14天前
|
安全 C#
【Azure 应用服务】在安全漏洞扫描中发现有泄露服务器IIS版本的情况,如何实现屏蔽服务版本号信息呢?
【Azure 应用服务】在安全漏洞扫描中发现有泄露服务器IIS版本的情况,如何实现屏蔽服务版本号信息呢?
|
14天前
|
网络安全 C++
【Azure Developer】Visual Studio 2019中如何修改.Net Core应用通过IIS Express Host的应用端口(SSL/非SSL)
【Azure Developer】Visual Studio 2019中如何修改.Net Core应用通过IIS Express Host的应用端口(SSL/非SSL)
|
23天前
|
存储 开发框架 .NET
ASP.NET Web Api 使用 EF 6,DateTime 字段如何取数据库服务器当前时间
ASP.NET Web Api 使用 EF 6,DateTime 字段如何取数据库服务器当前时间
|
23天前
|
JSON API C#
闲话 .NET(6):.NET Core 各个版本的特性
闲话 .NET(6):.NET Core 各个版本的特性
|
24天前
|
人工智能 文字识别
通义语音AI技术问题之LCB-net模型对幻灯片中文本信息的使用如何解决
通义语音AI技术问题之LCB-net模型对幻灯片中文本信息的使用如何解决
12 0

热门文章

最新文章

下一篇
DDNS