public void ProcessRequest(HttpContext context) { string resultJSON = string.Empty; StringBuilder sbResult = new StringBuilder(); try { DeveloperInfo developerInfo = HttpContext.Current.Session["DeveloperInfo"] as DeveloperInfo; string processType = context.Request["ProcessType"].ToString(); string startDate = context.Request["StartDate"].ToString(); string endDate = context.Request["EndDate"].ToString(); if (processType == "GetDateList") { List<string> listDate = Tools.GetDateList(startDate, endDate); sbResult.Append("["); foreach (string date in listDate) { sbResult.AppendFormat("\"{0}\",", date); } sbResult.Remove(sbResult.Length - 1, 1); sbResult.Append("]"); resultJSON = sbResult.ToString(); } else if (processType == "GetAccessData") { string fullSiteName = context.Request["FullSiteName"].ToString(); List<string> listDate = Tools.GetDateList(startDate, endDate); IISProcess iisProcess = new IISProcess(DeveloperConfig.SystemPhysicalPath, developerInfo.LoginName); List<int> listAccessData = iisProcess.IISWebLogAccessCountGet(fullSiteName, listDate); sbResult.Append("["); foreach (int accessDate in listAccessData) { sbResult.AppendFormat("{0},", accessDate); } sbResult.Remove(sbResult.Length - 1, 1); sbResult.Append("]"); resultJSON = sbResult.ToString(); } context.Response.Write(resultJSON); } catch (Exception ex) { Tools.LogWrite(ex.ToString()); resultJSON = Tools.ExecResultToJSON(false, ex.Message); context.Response.Write(resultJSON); } }
private void button1_Click(object sender, EventArgs e) { try { IISProcess iisProcess = new IISProcess("f:\\saas", "Takewin"); iisProcess.ApplicationAdd("TakeWin_SMS", "App2", "f:\\Movie2"); // iisProcess.SiteCreate("110_MYSite1", "http", "*:80:", "110_MYSite1"); // int recordAmount = 0; // int pageAmount = 0; //iisProcess.IISWebLogGet("110_MYSite1", "140601", "140620", 1, 3, out recordAmount, out pageAmount); // iisProcess.SiteAddBind("MYSite", "http", "192.168.0.1:80:www.baidu.com"); // iisProcess.SiteReStart("MYSite"); //List<IPSecurity> listIPSecurity = new List<IPSecurity>(); //listIPSecurity.Add(new IPSecurity() { IPAddress = "127.0.0.1", SubNetMask = "255.255.255.255", IsAllow = false }); //iisProcess.SiteIpSecuritySet("TakeWin_SMS", true, listIPSecurity); //List<SiteBind> listSiteBind = new List<SiteBind>(); //listSiteBind.Add(new SiteBind() { BindingProtocol="http", BindingInformation="*:80:www.161.com" }); //listSiteBind.Add(new SiteBind() { BindingProtocol = "http", BindingInformation = "*:80:www.164.com" }); //iisProcess.SiteBindSet("MySite", listSiteBind); //ClientCatch clientCatch = new ClientCatch() { CacheControlMode = CacheControlMode.DisableCache, HttpExpires = DateTime.Parse("2015-01-01") }; //iisProcess.SiteClientCacheSet("MySite", clientCatch); //clientCatch = iisProcess.SiteClientCacheGet("MySite"); //tbResult.Text = clientCatch.CacheControlMode.ToString(); // List<CustomErrorPage> listCustomErrorPage = new List<CustomErrorPage>(); // listCustomErrorPage.Add(new CustomErrorPage() { StatusCode = 401, CustomerWebRelativePath = "/temp/error.htm" }); //listCustomErrorPage.Add(new CustomErrorPage() { StatusCode = 404, CustomerWebRelativePath = "/temp/error.htm" }); // iisProcess.SiteErrorPageSet("TakeWin_SMS", listCustomErrorPage); //listCustomErrorPage = iisProcess.SiteErrorPageGet("MySite"); // string siteId = iisProcess.SiteIdGet("110_MYSite2"); // WindowsLogProcess windowsLogProcess = new WindowsLogProcess(); // int recordAmount = 0; // int pageAmount = 0; // windowsLogProcess.EventLogGet(siteId, "2014-06-01", "2014-06-30", 1, 10, out recordAmount, out pageAmount); // FileSizeHelper fileSizeHelper = new FileSizeHelper(); //tbResult.Text = fileSizeHelper.GetDirectorySize("F:\\saas").ToString(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public void ProcessRequest(HttpContext context) { string resultJSON = string.Empty; string result = string.Empty; try { DeveloperInfo developerInfo = HttpContext.Current.Session["DeveloperInfo"] as DeveloperInfo; string fullSiteName = context.Request["FullSiteName"].ToString(); string logType = context.Request["LogType"].ToString(); string startDate = context.Request["StartDate"].ToString(); string endDate = context.Request["EndDate"].ToString(); int pageNumber = int.Parse(context.Request["page"]); int pageSize = int.Parse(context.Request["rows"]); int recordAmount = 0; int pageAmount = 0; DataTable dt = null; if (logType == "IISLog") { IISProcess iisSProcess = new BLL.IISProcess(DeveloperConfig.SystemPhysicalPath, developerInfo.LoginName); startDate = DateTime.Parse(startDate).ToString("yyMMdd"); endDate = DateTime.Parse(endDate).ToString("yyMMdd"); dt= iisSProcess.IISWebLogGet(fullSiteName, startDate, endDate, pageNumber, pageSize, out recordAmount, out pageAmount); } else if (logType == "WindowsLog") { IISProcess iisSProcess = new BLL.IISProcess(DeveloperConfig.SystemPhysicalPath, developerInfo.LoginName); string siteId = iisSProcess.SiteIdGet(fullSiteName); WindowsLogProcess windowsLogProcess = new WindowsLogProcess(); dt = windowsLogProcess.EventLogGet(siteId, startDate, endDate, pageNumber, pageSize, out recordAmount, out pageAmount); } string contentJSON = JsonConvert.SerializeObject(dt, new DataTableToJosnConverter()); resultJSON = Tools.QueryResultToJSON(contentJSON, recordAmount); context.Response.Write(resultJSON); } catch (Exception ex) { Tools.LogWrite(ex.ToString()); resultJSON = Tools.ExecResultToJSON(false, ex.Message); context.Response.Write(resultJSON); } }
public void ProcessRequest(HttpContext context) { string resultJSON = string.Empty; try { DeveloperInfo developerInfo = HttpContext.Current.Session["DeveloperInfo"] as DeveloperInfo; string fullSiteName = context.Request["FullSiteName"].ToString(); IISProcess iisSProcess = new BLL.IISProcess(DeveloperConfig.SystemPhysicalPath, developerInfo.LoginName); iisSProcess.SiteReStart(fullSiteName); resultJSON = Tools.ExecResultToJSON(true, "重启站点成功!"); context.Response.Write(resultJSON); } catch (Exception ex) { Tools.LogWrite(ex.ToString()); resultJSON = Tools.ExecResultToJSON(false, ex.Message); context.Response.Write(resultJSON); } }
public string SiteIpSecuritySet(DeveloperInfo developerInfo, string siteName, int appId, byte isAllowUnlisted, string ipConfig) { List<IPSecurity> listIPSecurity = new List<IPSecurity>(); if (!string.IsNullOrEmpty(ipConfig.Trim())) { string[] ipconfigs = ipConfig.Split(new char[] { '|' }, StringSplitOptions.None); foreach (string ipconfig in ipconfigs) { string[] errorRecord = ipconfig.Replace(",", ",").Split(new char[] { ',' }, StringSplitOptions.None); IPSecurity ipSecurity = new IPSecurity(); ipSecurity.IPAddress = errorRecord[0].Trim(); ipSecurity.SubNetMask = errorRecord[1].Trim(); ipSecurity.IsAllow = errorRecord[2] == "1"; listIPSecurity.Add(ipSecurity); } } IISProcess iisProcess = new IISProcess(DeveloperConfig.SystemPhysicalPath, developerInfo.LoginName); iisProcess.SiteIpSecuritySet(siteName, Convert.ToBoolean(isAllowUnlisted), listIPSecurity); DbCommand cmd = _dataBaseAccess.CreateCommand(); cmd.CommandText = "Proc_Apps_SiteIpSecurity_Update"; DbParameter param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@AppId"; param.DbType = DbType.Int32; param.Value = appId; cmd.Parameters.Add(param); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@IsAllowAccessUnConfig"; param.DbType = DbType.Byte; param.Value = isAllowUnlisted; cmd.Parameters.Add(param); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@IPSecurity"; param.DbType = DbType.String; param.Value = ipConfig; cmd.Parameters.Add(param); _dataBaseAccess.ExecuteCommand(cmd); return string.Empty; }
public string SiteErrorPageSet(DeveloperInfo developerInfo, string siteName, int appId, string errorPage) { List<CustomErrorPage> listCustomErrorPage = new List<CustomErrorPage>(); if (!string.IsNullOrEmpty(errorPage.Trim())) { string[] pages = errorPage.Split(new char[] { '|' }, StringSplitOptions.None); foreach (string page in pages) { string[] errorRecord = page.Replace(",", ",").Split(new char[] { ',' }, StringSplitOptions.None); CustomErrorPage customErrorPage = new CustomErrorPage(); customErrorPage.StatusCode = int.Parse(errorRecord[0].Trim()); customErrorPage.CustomerWebRelativePath = errorRecord[1].Trim(); listCustomErrorPage.Add(customErrorPage); } } IISProcess iisProcess = new IISProcess(DeveloperConfig.SystemPhysicalPath, developerInfo.LoginName); iisProcess.SiteErrorPageSet(siteName, listCustomErrorPage); DbCommand cmd = _dataBaseAccess.CreateCommand(); cmd.CommandText = "Proc_Apps_SiteErrorPage_Update"; DbParameter param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@AppId"; param.DbType = DbType.Int32; param.Value = appId; cmd.Parameters.Add(param); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@CustomErrorPage"; param.DbType = DbType.String; param.Value = errorPage; cmd.Parameters.Add(param); _dataBaseAccess.ExecuteCommand(cmd); return string.Empty; }
public string SiteDefaultPageSet(DeveloperInfo developerInfo, string siteName, int appId, string defaultPages) { List<string> listDefaultPage = new List<string>(); if (!string.IsNullOrEmpty(defaultPages.Trim())) { string[] pages = defaultPages.Split(new char[] { '|' }, StringSplitOptions.None); listDefaultPage = new List<string>(pages); } IISProcess iisProcess = new IISProcess(DeveloperConfig.SystemPhysicalPath, developerInfo.LoginName); iisProcess.SiteDefaultPageSet(siteName, listDefaultPage); DbCommand cmd = _dataBaseAccess.CreateCommand(); cmd.CommandText = "Proc_Apps_SiteDefaultPage_Update"; DbParameter param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@AppId"; param.DbType = DbType.Int32; param.Value = appId; cmd.Parameters.Add(param); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@DefaultPages"; param.DbType = DbType.String; param.Value = defaultPages; cmd.Parameters.Add(param); _dataBaseAccess.ExecuteCommand(cmd); return string.Empty; }
public string SiteCompressionSet(DeveloperInfo developerInfo, string siteName, int appId, bool isStaticCompression, bool isDynamicCompression) { UrlCompression urlCompression = new UrlCompression(); urlCompression.IsStaticCompression = isStaticCompression; urlCompression.IsDynamicCompression = isDynamicCompression; IISProcess iisProcess = new IISProcess(DeveloperConfig.SystemPhysicalPath, developerInfo.LoginName); iisProcess.SiteCompressionSet(siteName, urlCompression); DbCommand cmd = _dataBaseAccess.CreateCommand(); cmd.CommandText = "Proc_Apps_SiteCompression_Update"; DbParameter param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@AppId"; param.DbType = DbType.Int32; param.Value = appId; cmd.Parameters.Add(param); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@IsStaticCompression"; param.DbType = DbType.Boolean; param.Value = isStaticCompression; cmd.Parameters.Add(param); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@IsDynamicCompression"; param.DbType = DbType.Boolean; param.Value = isDynamicCompression; cmd.Parameters.Add(param); _dataBaseAccess.ExecuteCommand(cmd); return string.Empty; }
public string SiteClientCacheSet(DeveloperInfo developerInfo, string siteName, int appId, string expires) { ClientCatch clientCatch = new ClientCatch(); clientCatch.CacheControlMode = string.IsNullOrEmpty(expires) ? CacheControlMode.DisableCache : CacheControlMode.UseExpires; if (!string.IsNullOrEmpty(expires)) { clientCatch.HttpExpires = DateTime.Parse(expires); } IISProcess iisProcess = new IISProcess(DeveloperConfig.SystemPhysicalPath, developerInfo.LoginName); iisProcess.SiteClientCacheSet(siteName, clientCatch); DbCommand cmd = _dataBaseAccess.CreateCommand(); cmd.CommandText = "Proc_Apps_SiteClientCache_Update"; DbParameter param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@AppId"; param.DbType = DbType.Int32; param.Value = appId; cmd.Parameters.Add(param); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@ClientCache"; param.DbType = DbType.String; param.Value = expires; cmd.Parameters.Add(param); _dataBaseAccess.ExecuteCommand(cmd); return string.Empty; }
public string SiteBindSet(DeveloperInfo developerInfo, string siteName, int appId, string defaultDomain, string customDomain) { if (defaultDomain.ToLower() == customDomain.ToLower()) { return "自定义域名不能与默认分配域名相同!"; } //验证自定义域名不要与其他相同 DbCommand cmd = _dataBaseAccess.CreateCommand(); cmd.CommandText = "Proc_Apps_SiteBind_Validate"; DbParameter param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@AppId"; param.DbType = DbType.Int32; param.Value = appId; cmd.Parameters.Add(param); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@CustomDomain"; param.DbType = DbType.String; param.Value = customDomain.ToLower(); cmd.Parameters.Add(param); DataTable dt = _dataBaseAccess.GetDataTable(cmd); if (dt.Rows.Count > 0) { return "该自定义域名已被绑定!"; } //更新IIS IISProcess iisProcess = new IISProcess(DeveloperConfig.SystemPhysicalPath, developerInfo.LoginName); List<SiteBind> listSiteBind = new List<SiteBind>(); listSiteBind.Add(new SiteBind() { BindingProtocol = "http", BindingInformation = "*:80:" + defaultDomain }); if (!string.IsNullOrEmpty(customDomain.Trim())) { listSiteBind.Add(new SiteBind() { BindingProtocol = "http", BindingInformation = "*:80:" + customDomain }); } iisProcess.SiteBindSet(siteName, listSiteBind); //更新数据库 cmd = _dataBaseAccess.CreateCommand(); cmd.CommandText = "Proc_Apps_SiteBind_Update"; cmd.Parameters.Clear(); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@AppId"; param.DbType = DbType.Int32; param.Value = appId; cmd.Parameters.Add(param); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@DefaultDomain"; param.DbType = DbType.String; param.Value = defaultDomain.ToLower(); cmd.Parameters.Add(param); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@CustomDomain"; param.DbType = DbType.String; param.Value = customDomain.ToLower(); cmd.Parameters.Add(param); _dataBaseAccess.ExecuteCommand(cmd); return string.Empty; }
public string AppCreate(DeveloperInfo developerInfo, string appName, string siteName, byte appLanguage, int pipelineMode, string runtimeVersion) { IISProcess iisProcess = null; string fullSiteName = string.Empty; try { if (appName.Length < 1 || appName.Length > 20) { return "应用名称需要1-20个字符!"; } if (siteName.Length < 1 || siteName.Length > 20) { return "应用标识需要1-20个字符!"; } Match match = Regex.Match(siteName, @"^[a-zA-Z]+$"); if (!match.Success) { return "应用标识只能包含英文!"; } ManagedPipelineMode managedPipelineMode = (ManagedPipelineMode)pipelineMode; fullSiteName = developerInfo.LoginName + "_" + siteName; string secondDomainName = DeveloperConfig.SystemDomain.Replace("www", fullSiteName); iisProcess = new IISProcess(DeveloperConfig.SystemPhysicalPath, developerInfo.LoginName); if (iisProcess.SiteIsExists(fullSiteName)) { return "该站点在IIS中已经存在!"; } if (IsAppExists(developerInfo.Id, appName, siteName)) { return "该应用在数据库中已经存在!"; } iisProcess.AppPoolCreate(fullSiteName, runtimeVersion, managedPipelineMode); iisProcess.SiteCreate(fullSiteName, "http", "*:80:" + secondDomainName, fullSiteName); //写入数据库 DbCommand cmd = _dataBaseAccess.CreateCommand(); cmd.CommandText = "Proc_Apps_Create"; DbParameter param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@DbPath"; param.DbType = DbType.String; param.Value = iisProcess.DBPathGet(fullSiteName); cmd.Parameters.Add(param); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@DbName"; param.DbType = DbType.String; param.Value = fullSiteName; cmd.Parameters.Add(param); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@DbMaxSize"; param.DbType = DbType.Int32; param.Value = developerInfo.DBSpaceTotal / 2; //因为有数据库日志 cmd.Parameters.Add(param); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@DbLoginName"; param.DbType = DbType.String; param.Value = fullSiteName; cmd.Parameters.Add(param); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@DbLoginPass"; param.DbType = DbType.String; param.Value = fullSiteName; cmd.Parameters.Add(param); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@DeveloperId"; param.DbType = DbType.Int32; param.Value = developerInfo.Id; cmd.Parameters.Add(param); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@AppName"; param.DbType = DbType.String; param.Value = appName; cmd.Parameters.Add(param); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@SiteName"; param.DbType = DbType.String; param.Value = siteName; cmd.Parameters.Add(param); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@AppLanguage"; param.DbType = DbType.Byte; param.Value = appLanguage; cmd.Parameters.Add(param); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@APipelineMode"; param.DbType = DbType.Byte; param.Value = managedPipelineMode; cmd.Parameters.Add(param); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@ARuntimeVersion"; param.DbType = DbType.String; param.Value = runtimeVersion; cmd.Parameters.Add(param); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@Domain"; param.DbType = DbType.String; param.Value = string.Empty; cmd.Parameters.Add(param); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@SecondDomain"; param.DbType = DbType.String; param.Value = secondDomainName; cmd.Parameters.Add(param); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@DiskSpaceNow"; param.DbType = DbType.Int32; param.Value = developerInfo.SiteSpaceTotal; cmd.Parameters.Add(param); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@DBSpaceNow"; param.DbType = DbType.Int32; param.Value = developerInfo.DBSpaceTotal; cmd.Parameters.Add(param); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@WebPath"; param.DbType = DbType.String; param.Value = iisProcess.SitePathGet(fullSiteName); cmd.Parameters.Add(param); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@IISName"; param.DbType = DbType.String; param.Value = fullSiteName; cmd.Parameters.Add(param); param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@AMMXPath"; param.DbType = DbType.String; param.Value = iisProcess.MMXPathGet(fullSiteName); cmd.Parameters.Add(param); _dataBaseAccess.ExecuteCommand(cmd); } catch (Exception) { if (iisProcess.SiteIsExists(fullSiteName)) { iisProcess.SiteDelete(fullSiteName, true); } throw; } return string.Empty; }
public void AppRemove(DeveloperInfo developerInfo, string siteName, int appId) { DbCommand cmd = _dataBaseAccess.CreateCommand(); cmd.CommandText = "Proc_Apps_Remove"; DbParameter param = _dataBaseAccess.CreateParameter(); param.ParameterName = "@Id"; param.DbType = DbType.Int32; param.Value = appId; cmd.Parameters.Add(param); _dataBaseAccess.ExecuteCommand(cmd); IISProcess iisProcess = new IISProcess(DeveloperConfig.SystemPhysicalPath, developerInfo.LoginName); iisProcess.SiteDelete(siteName, true); }