Skip to content

Commit

Permalink
IIS工具功能优化,增加批量操作。
Browse files Browse the repository at this point in the history
  • Loading branch information
youbl committed Oct 31, 2018
1 parent cdfde14 commit 33a0936
Show file tree
Hide file tree
Showing 11 changed files with 568 additions and 204 deletions.
243 changes: 231 additions & 12 deletions IISAbout/IISOperation.cs

Large diffs are not rendered by default.

318 changes: 181 additions & 137 deletions IISAbout/IIStool.Designer.cs

Large diffs are not rendered by default.

91 changes: 69 additions & 22 deletions IISAbout/IIStool.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using System.Windows.Forms;

Expand Down Expand Up @@ -54,6 +55,8 @@ private void btnListSite_Click(object sender, EventArgs e)
root.Nodes.Clear();

_operation = new IISOperation(txtIISIP.Text);
root.Text = "IIS-" + _operation.GetIisVersion().ToString();

var sites = _operation.ListSite();
_arrSites = sites.ToDictionary(item => item.Name);
foreach (var site in sites)
Expand Down Expand Up @@ -130,14 +133,7 @@ private void btnCopyIIS_Click(object sender, EventArgs e)

private void labLogDir_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
// %SystemDrive%环境变量转换
var dir = Environment.ExpandEnvironmentVariables(labLogDir.Text);
if (!Directory.Exists(dir))
{
Alert("目录不存在:" + dir);
return;
}
Process.Start("explorer", dir);
Utility.OpenDir(labLogDir.Text);
}

private void btnNewSite_Click(object sender, EventArgs e)
Expand Down Expand Up @@ -272,7 +268,7 @@ private void btnDelAllGc_Click(object sender, EventArgs e)
return;
}
var ret = _operation.RemovePoolGc();
Alert("下列程序池已取消特定时间回收配置:\n" + ret);
Alert(ret);
}

private void btnStopAll_Click(object sender, EventArgs e)
Expand All @@ -289,14 +285,7 @@ private void btnStopAll_Click(object sender, EventArgs e)
}
var begin = DateTime.Now;
var ret = _operation.StopSite(false);
if (ret.Length == 0)
{
Alert("全部停止完成", begin);
}
else
{
Alert("下列站点或程序池停止失败:\n" + ret, begin);
}
Alert(ret, begin);
}


Expand Down Expand Up @@ -340,14 +329,61 @@ private void btnEnableAllPreload_Click(object sender, EventArgs e)
}
var begin = DateTime.Now;
var ret = _operation.StartSitePreload();
if (ret.Length == 0)
Alert(ret, begin);
}
private void btnModifyPool_Click(object sender, EventArgs e)
{
if (_operation == null)
{
Alert("全部开启完成", begin);
Alert("请先连接服务器");
return;
}
else
if (!Confirm("按每个网站名创建程序池,并把网站绑定到该程序池,确认要继续吗?\r\n已存在的程序池不会新建,直接使用。"))
{
return;
}
var begin = DateTime.Now;
var ret = _operation.ModiSitesPool();
Alert(ret, begin);
}

private void btnSetGCTime_Click(object sender, EventArgs e)
{
if (_operation == null)
{
Alert("请先连接服务器");
return;
}
if (!PromptWin.GetPrompt(out var strTime, "请输入第一个站点的回收时间, 格式必须是:HH:mm", "04:30", this))
{
return;
}
if (!Regex.IsMatch(strTime, @"^([01]\d|2[0-3]):[0-5]\d$"))
{
Alert("回收时间格式必须是小时分钟:HH:mm");
return;
}
if (!PromptWin.GetPrompt(out var strMinute, "请输入每2个站点的回收间隔时间, 单位分钟", "1", this))
{
return;
}
if (!int.TryParse(strMinute, out var deffMinute) || deffMinute > 30 || deffMinute < 1)
{
Alert("下列站点开启失败:\n" + ret, begin);
Alert("时间间隔必须是1~30之间的数字");
return;
}
var tmpArr = strTime.Split(':');
int hour = int.Parse(tmpArr[0]);
int minute = int.Parse(tmpArr[1]);
var begin = DateTime.Now;
var ret = _operation.SetPoolsRecyleTime(hour, minute, deffMinute);
Alert(ret, begin);
}


private void btnOpen_Click(object sender, EventArgs e)
{
Utility.OpenDir(txtSiteDir.Text);
}
#endregion

Expand Down Expand Up @@ -472,7 +508,7 @@ void RestartSite(object data)
}
Alert("站点和程序池重启成功:" + siteName, begin);
}
// 重启站点和应用程序池
// 停止站点和应用程序池
void StopSite(object data)
{
var begin = DateTime.Now;
Expand Down Expand Up @@ -521,9 +557,19 @@ void OperationSite(int flg)
CopySite(siteName);
return;
case 1:
if (!site.IsHttp)
{
Alert("不支持ftp站点");
return;
}
RestartSite(siteName);
break;
case 2:
if (!site.IsHttp)
{
Alert("不支持ftp站点");
return;
}
StopSite(siteName);
break;
}
Expand Down Expand Up @@ -924,5 +970,6 @@ static bool Confirm(string msg)
MessageBoxDefaultButton.Button2);
return ret == DialogResult.Yes;
}

}
}
28 changes: 13 additions & 15 deletions IISAbout/IIStool.resx
Original file line number Diff line number Diff line change
Expand Up @@ -124,8 +124,8 @@
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABm
CQAAAk1TRnQBSQFMAgEBAwEAASgBAAEoAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAM
CQAAAk1TRnQBSQFMAgEBAwEAAVgBAAFYAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
Expand Down Expand Up @@ -153,19 +153,17 @@
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wEABkMBFANtARMKQwEV
AW0B6gNtARIEQxCQEAABFQJDARUBFALqARIBEwESAeoBbQESA0MEFQFtAeoBEgEQAgsBFALqAxUQkBAA
AxUBEgHqAUMBIgQnAREC6gUVAW0B6gELBR4BCwETAeoCFRCQEAABFAEVARQB6gEhBycBIQHqARIDFQLq
AQsIHgETAeoBFRCQEAACFAHqAUMJJwEhAeoDFAHqAQ8JHgELAeoBEgmWApABgQSQEAACFAHqCycBEgET
ARQBEwHqAQsGHgELAx4BEQHqDJYEkBAAARMB6gESAicBSQEnAigCJwFJAicBFQHqARQCEgIeAUQB6gHt
AT4BHAEHAZMCHgELAeoLlgWQEAABEwHqARUCJwFDAUkCQwHrAScBwgInASEBEgETARIBQwIeAUQDGgEM
AQcBEQE+AR4BCwHqDZYBkAKWEAABEwESARUCTwHtAXIBmAFyARIB7QHzAicBIQESARMBEgEVA0UBkwHz
AUQBkwGNAbwCHgELARIQlhAAAhIBFAVPAUkCJwGYAicBEQQSAUQDRQJEBR4BCwESEJYQAAMSBU8BSQEo
BCcBEwQSAQsERQFEBR4BFAESEJYQAAMSAUkDTwNJASgCJwERARMEEgEVAUQCRQNEASMCHgELARMB6hCW
EAAB6gESAeoBEgFyAk8DSQIoAUkBEwESBOoBEgELAT4FRAE+AQsBEwESAeoQlhAAA+oBEgETAU8GSQIT
BuoBEwFDAQsBHgNEAQsBEwESAuoQlhAABOoCEgEUA0kBFAETARII6gETARIBEwEUAhMBEgTqEJYQAAFt
BeoBEgETAhIBEwFtCOoDbQMSAW0D6gFtAeoQlhAAAUIBTQE+BwABPgMAASgDAAFAAwABEAMAAQEBAAEB
BQABgBcAA/+BAAs=
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wEAEFUQRyAABlUBdwlV
DEcBRgNHBwACwwKgAeUUAARVAXEBtwHvCVUERwJZAVMBRgFHAVMBWQFTAVkDRwEAAREDAAEPAQACwwGg
AuUUAARVAXECtwG9AXEHVQRHA/sBKwFHAVkD+wNHAQABrgHQAdYC3QHyAcMCoAHlAV4B5RMABFUBcQS3
Ae8GVQRHA/sBKwFHAVkD+wNHAgAB0AHWA90BDgHDAaAC5QFeEwAEVQFxBbcBvQFxA1UBdwRHA/sBKwFH
AVkD+wNHAgAB0AHWA90BAALDARQBSgHlEwAEVQFxB7cBcgNVBEcD+wErAUcBWQP7A0cCAAGvAdYD3QHq
AQ4BlwKeAQgTAARVAXEItwG9AlUERwP7ASsBRwFZA/sDRwIAAQ4BjQHXAd0BEgEOAScB5AGeAQgCwhIA
BFUBcQe3Ab0BcgJVBEcD+wErAUcBWQP7A0cDAAEWAkQBaQEXAQAB5AGeAQgCwhIABFUBcQa3Ab0EVQRH
A/sBKwFHAVkD+wNHAwABFgTjAQ4B5AGeAQgCwgEOEQAEVQFxBbcBcgVVBEcD+wErAUcBWQP7A0cDAAGT
BBYBGgGYAZ4BwQLCAfcRAARVAXEEtwFPBlUERwP7ASsBRwFZA/sDRwQABZQBAAEOAwABDhEABFUBcQG3
Ab0BmAJ3BlUERwNTAUYBRwRTA0cEAAG9AbcDvRcABFUBcQG9AXEJVRBHIAAQVRBHIAAFVQFPClUQRyAA
AUIBTQE+BwABPgMAASgDAAFAAwABEAMAAQEBAAEBBQABgBcAA/+BAAs=
</value>
</data>
<metadata name="contextMenuStripIIS.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
Expand Down
Binary file modified IISAbout/root.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified IISAbout/start.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified IISAbout/stop.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
水边开发的工具合集
==================

整合了11个工具
1、上下线控制(用于配置CheckIpInfo.aspx页面进行前端负载均衡控制,便于多台服务器的发布)
整合了12个工具
1、IIS运维管理工具
2、DES/3DES/Base64加密解密工具,MD5/Hash/Hash32加密工具
3、DotNet的DLL合并工具
4、检测DLL是64位还是32位,.net的程序或dll是Release还是Debug版本
Expand All @@ -13,6 +13,7 @@
9、SqlServer数据库同步工具
10、IP纯真库查询和导入数据库工具
11、站点是否开启GZIP压缩的测试
12、上下线控制(用于配置CheckIpInfo.aspx页面进行前端负载均衡控制,便于多台服务器的发布)

另:项目根目录下有个Tools.aspx页面文件,是一个工具页面,支持如下功能:
1、在线文件管理器(类似于Windows的资源管理器),同时可以配合FileHash工具,进行在线文件MD5对比
Expand Down
2 changes: 2 additions & 0 deletions Util/PromptWin.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

69 changes: 53 additions & 16 deletions Util/PromptWin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ namespace Beinet.cn.Tools
public partial class PromptWin : Form
{
public string PromptText { get; set; }
private string _title { get; set; }

//public PromptWin()
// : this(null)
Expand All @@ -21,16 +22,17 @@ public partial class PromptWin : Form
public PromptWin(string title)
{
InitializeComponent();
if (!string.IsNullOrEmpty(title))
{
Text = title;
}
_title = title;
ShowInTaskbar = false;// 不能放到OnLoad里,会导致窗体消失
}

protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (!string.IsNullOrEmpty(_title))
{
Text = _title;
}

if (Owner != null)
{
Expand All @@ -42,36 +44,71 @@ protected override void OnLoad(EventArgs e)
}

private void button1_Click(object sender, EventArgs e)
{
Ok();
}

private void button2_Click(object sender, EventArgs e)
{
Cancel();
}

void Ok()
{
this.DialogResult = DialogResult.OK;
PromptText = textBox1.Text;
Close();
}

private void button2_Click(object sender, EventArgs e)
void Cancel()
{
this.DialogResult = DialogResult.Cancel;
PromptText = null;
Close();
}

private void PromptWin_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Escape:
Cancel();
break;
case Keys.Enter:
Ok();
break;
}
}



/// <summary>
/// 弹出模态窗口,获取返回值
/// </summary>
/// <param name="msg"></param>
/// <param name="title"></param>
/// <param name="window"></param>
/// <returns></returns>
public static bool GetPrompt(out string msg, string title = null, IWin32Window window = null)
public static bool GetPrompt(out string msg, string title = null,
string defaultVal = null, IWin32Window window = null)
{
var win = new PromptWin(title);
DialogResult ret = win.ShowDialog(window);
if(ret == DialogResult.OK)
try
{
using (var win = new PromptWin(title))
{
if (!string.IsNullOrEmpty(defaultVal))
{
win.textBox1.Text = defaultVal;
}
DialogResult ret = win.ShowDialog(window);
if (ret == DialogResult.OK)
{
msg = win.PromptText;
return true;
}
}
msg = null;
}
catch
{
msg = win.PromptText;
return true;
msg = null;
}
msg = null;
return false;
}
}
Expand Down
16 changes: 16 additions & 0 deletions Util/Utility.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1077,5 +1077,21 @@ public static T FromJson<T>(string source)
}


public static void OpenDir(string dir)
{
if (string.IsNullOrEmpty(dir))
{
MessageBox.Show("目录不能为空");
return;
}
// %SystemDrive%环境变量转换
dir = Environment.ExpandEnvironmentVariables(dir);
if (!Directory.Exists(dir))
{
MessageBox.Show("目录不存在:" + dir);
return;
}
Process.Start("explorer", dir);
}
}
}

0 comments on commit 33a0936

Please sign in to comment.