Fixed dialogue "Web Site Properties" and small correction of procedure "get/set status of the pool"

This commit is contained in:
dev_amdtel 2013-05-07 12:22:46 +04:00
parent cfd0b39673
commit fac0d8c9d9
7 changed files with 106 additions and 77 deletions

View file

@ -6,8 +6,10 @@ namespace WebsitePanel.Providers
public enum AppPoolState public enum AppPoolState
{ {
Unknown = 0, Unknown = 0,
Start = 1, Starting = 1,
Stop = 2, Started = 2,
Recycle = 3 Stopping = 3,
Stopped = 4,
Recycle = 5
} }
} }

View file

@ -351,9 +351,6 @@ namespace WebsitePanel.Providers.Web.Iis.WebObjects
// AppPool // AppPool
public void ChangeAppPoolState(string siteId, AppPoolState state) public void ChangeAppPoolState(string siteId, AppPoolState state)
{ {
// del
File.AppendAllText(@"c:\websitepanel\test.log", "ChangeAppPoolState " + siteId + " state " + state.ToString() + "\r\n");
using (var srvman = GetServerManager()) using (var srvman = GetServerManager())
{ {
var site = srvman.Sites[siteId]; var site = srvman.Sites[siteId];
@ -361,34 +358,44 @@ namespace WebsitePanel.Providers.Web.Iis.WebObjects
if (site == null) if (site == null)
return; return;
string AppPoolName = site.ApplicationDefaults.ApplicationPoolName;
foreach (Application app in site.Applications) foreach (Application app in site.Applications)
AppPoolName = app.ApplicationPoolName;
if (string.IsNullOrEmpty(AppPoolName))
return;
ApplicationPool pool = srvman.ApplicationPools[AppPoolName];
if (pool == null) return;
//
switch (state)
{ {
case AppPoolState.Start: string AppPoolName = app.ApplicationPoolName;
pool.Start();
pool.AutoStart = true; if (string.IsNullOrEmpty(AppPoolName))
break; continue;
case AppPoolState.Stop:
pool.Stop(); ApplicationPool pool = srvman.ApplicationPools[AppPoolName];
pool.AutoStart = false; if (pool == null) continue;
break;
case AppPoolState.Recycle: //
pool.Recycle(); switch (state)
pool.AutoStart = true; {
break; case AppPoolState.Started:
case AppPoolState.Starting:
if ((pool.State != ObjectState.Started) && (pool.State != ObjectState.Starting))
{
pool.Start();
pool.AutoStart = true;
}
break;
case AppPoolState.Stopped:
case AppPoolState.Stopping:
if ((pool.State != ObjectState.Stopped) && (pool.State != ObjectState.Stopping))
{
pool.Stop();
pool.AutoStart = false;
}
break;
case AppPoolState.Recycle:
pool.Recycle();
pool.AutoStart = true;
break;
}
srvman.CommitChanges();
} }
//
srvman.CommitChanges();
} }
} }
@ -416,16 +423,16 @@ namespace WebsitePanel.Providers.Web.Iis.WebObjects
switch (pool.State) switch (pool.State)
{ {
case ObjectState.Started: case ObjectState.Started:
state = AppPoolState.Start; state = AppPoolState.Started;
break; break;
case ObjectState.Starting: case ObjectState.Starting:
state = AppPoolState.Start; state = AppPoolState.Starting;
break; break;
case ObjectState.Stopped: case ObjectState.Stopped:
state = AppPoolState.Stop; state = AppPoolState.Stopped;
break; break;
case ObjectState.Stopping: case ObjectState.Stopping:
state = AppPoolState.Stop; state = AppPoolState.Stopping;
break; break;
} }

View file

@ -31,6 +31,7 @@ Default skin template. The following skins are provided as examples only.
<asp:ImageButton SkinID="StartMedium" runat="server" ImageUrl="Images/play_24.png" ImageAlign="AbsMiddle" Width="24" Height="24"/> <asp:ImageButton SkinID="StartMedium" runat="server" ImageUrl="Images/play_24.png" ImageAlign="AbsMiddle" Width="24" Height="24"/>
<asp:ImageButton SkinID="StopMedium" runat="server" ImageUrl="Images/stop_24.png" ImageAlign="AbsMiddle" Width="24" Height="24"/> <asp:ImageButton SkinID="StopMedium" runat="server" ImageUrl="Images/stop_24.png" ImageAlign="AbsMiddle" Width="24" Height="24"/>
<asp:ImageButton SkinID="ContinueMedium" runat="server" ImageUrl="Images/play_24.png" ImageAlign="AbsMiddle" Width="24" Height="24"/> <asp:ImageButton SkinID="ContinueMedium" runat="server" ImageUrl="Images/play_24.png" ImageAlign="AbsMiddle" Width="24" Height="24"/>
<asp:ImageButton SkinID="RecycleMedium" runat="server" ImageUrl="Images/restart_24.png" ImageAlign="AbsMiddle" Width="24" Height="24"/>
<asp:ImageButton SkinID="PauseSmall" runat="server" ImageUrl="Images/pause_16.png" ImageAlign="AbsMiddle" Width="16" Height="16"/> <asp:ImageButton SkinID="PauseSmall" runat="server" ImageUrl="Images/pause_16.png" ImageAlign="AbsMiddle" Width="16" Height="16"/>
<asp:ImageButton SkinID="StartSmall" runat="server" ImageUrl="Images/play_16.png" ImageAlign="AbsMiddle" Width="16" Height="16"/> <asp:ImageButton SkinID="StartSmall" runat="server" ImageUrl="Images/play_16.png" ImageAlign="AbsMiddle" Width="16" Height="16"/>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

View file

@ -166,18 +166,12 @@
<td nowrap valign="top" align="right"> <td nowrap valign="top" align="right">
<table cellpadding="7" width="150px"> <table cellpadding="7" width="150px">
<tr> <tr>
<td>
<asp:Label ID="lblWebsiteStatus" runat="server" meta:resourcekey="lblWebsiteStatus" Text="Website Status"></asp:Label>
</td>
<td class="MediumBold" align="center"> <td class="MediumBold" align="center">
<asp:Literal ID="litStatus" runat="server"></asp:Literal> <asp:Literal ID="litStatus" runat="server"></asp:Literal>
</td> </td>
<%-- AppPool --%>
<td class="MediumBold" align="center">
App Pool : <asp:Literal ID="litAppPoolStatus" runat="server"></asp:Literal>
</td>
<%-- AppPool --%>
</tr>
<tr>
<td align="center"> <td align="center">
<asp:ImageButton ID="cmdStart" runat="server" SkinID="StartMedium" meta:resourcekey="cmdStart" <asp:ImageButton ID="cmdStart" runat="server" SkinID="StartMedium" meta:resourcekey="cmdStart"
CommandName="Started" OnClick="cmdChangeState_Click" /> CommandName="Started" OnClick="cmdChangeState_Click" />
@ -188,15 +182,22 @@
<asp:ImageButton ID="cmdStop" runat="server" SkinID="StopMedium" meta:resourcekey="cmdStop" <asp:ImageButton ID="cmdStop" runat="server" SkinID="StopMedium" meta:resourcekey="cmdStop"
CommandName="Stopped" OnClick="cmdChangeState_Click" /> CommandName="Stopped" OnClick="cmdChangeState_Click" />
</td> </td>
</tr>
<%-- AppPool --%> <tr>
<td align="center"> <td>
<asp:LinkButton ID="cmdAppPoolStart" runat="server" CommandName="Start" OnClick="cmdAppPoolChangeState_Click">Start</asp:LinkButton><br /> <asp:Label ID="lblAppPoolStatus" runat="server" meta:resourcekey="lblAppPoolStatus" Text="App Pool Status"></asp:Label>
<asp:LinkButton ID="cmdAppPoolStop" runat="server" CommandName="Stop" OnClick="cmdAppPoolChangeState_Click">Stop</asp:LinkButton><br /> </td>
<asp:LinkButton ID="cmdAppPoolRecycle" runat="server" CommandName="Recycle" OnClick="cmdAppPoolChangeState_Click">Recycle</asp:LinkButton> <td class="MediumBold" align="center">
<asp:Literal ID="litAppPoolStatus" runat="server"></asp:Literal>
</td>
<td align="center">
<asp:ImageButton ID="cmdAppPoolStart" runat="server" SkinID="StartMedium" meta:resourcekey="cmdStart"
CommandName="Started" OnClick="cmdAppPoolChangeState_Click" />
<asp:ImageButton ID="cmdAppPoolRecycle" runat="server" SkinID="RecycleMedium" meta:resourcekey="cmdRecycle"
CommandName="Recycle" OnClick="cmdAppPoolChangeState_Click" />
<asp:ImageButton ID="cmdAppPoolStop" runat="server" SkinID="StopMedium" meta:resourcekey="cmdStop"
CommandName="Stopped" OnClick="cmdAppPoolChangeState_Click" />
</td> </td>
<%-- AppPool --%>
</tr> </tr>
</table> </table>
</td> </td>

View file

@ -995,17 +995,17 @@ namespace WebsitePanel.Portal
// AppPool // AppPool
private void BindAppPoolState(AppPoolState state) private void BindAppPoolState(AppPoolState state)
{ {
litAppPoolStatus.Text = state.ToString(); litAppPoolStatus.Text = GetLocalizedString("SiteState." + state.ToString());
cmdAppPoolStart.Visible = (state == AppPoolState.Stop); cmdAppPoolStart.Visible = (state == AppPoolState.Stopped || state == AppPoolState.Stopping);
cmdAppPoolStop.Visible = (state == AppPoolState.Start); cmdAppPoolStop.Visible = (state == AppPoolState.Started || state == AppPoolState.Starting);
cmdAppPoolRecycle.Visible = (state == AppPoolState.Start); cmdAppPoolRecycle.Visible = (state == AppPoolState.Started || state == AppPoolState.Starting);
} }
protected void cmdAppPoolChangeState_Click(object sender, EventArgs e) protected void cmdAppPoolChangeState_Click(object sender, EventArgs e)
{ {
string stateName = ((LinkButton)sender).CommandName; string stateName = ((ImageButton)sender).CommandName;
AppPoolState state = (AppPoolState)Enum.Parse(typeof(AppPoolState), stateName, true); AppPoolState state = (AppPoolState)Enum.Parse(typeof(AppPoolState), stateName, true);
try try

View file

@ -318,6 +318,15 @@ namespace WebsitePanel.Portal {
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.GridView gvPointers; protected global::System.Web.UI.WebControls.GridView gvPointers;
/// <summary>
/// lblWebsiteStatus элемент управления.
/// </summary>
/// <remarks>
/// Автоматически создаваемое поле.
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblWebsiteStatus;
/// <summary> /// <summary>
/// litStatus элемент управления. /// litStatus элемент управления.
/// </summary> /// </summary>
@ -327,15 +336,6 @@ namespace WebsitePanel.Portal {
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.Literal litStatus; protected global::System.Web.UI.WebControls.Literal litStatus;
/// <summary>
/// litAppPoolStatus элемент управления.
/// </summary>
/// <remarks>
/// Автоматически создаваемое поле.
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
/// </remarks>
protected global::System.Web.UI.WebControls.Literal litAppPoolStatus;
/// <summary> /// <summary>
/// cmdStart элемент управления. /// cmdStart элемент управления.
/// </summary> /// </summary>
@ -372,6 +372,24 @@ namespace WebsitePanel.Portal {
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.ImageButton cmdStop; protected global::System.Web.UI.WebControls.ImageButton cmdStop;
/// <summary>
/// lblAppPoolStatus элемент управления.
/// </summary>
/// <remarks>
/// Автоматически создаваемое поле.
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblAppPoolStatus;
/// <summary>
/// litAppPoolStatus элемент управления.
/// </summary>
/// <remarks>
/// Автоматически создаваемое поле.
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
/// </remarks>
protected global::System.Web.UI.WebControls.Literal litAppPoolStatus;
/// <summary> /// <summary>
/// cmdAppPoolStart элемент управления. /// cmdAppPoolStart элемент управления.
/// </summary> /// </summary>
@ -379,16 +397,7 @@ namespace WebsitePanel.Portal {
/// Автоматически создаваемое поле. /// Автоматически создаваемое поле.
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части. /// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.LinkButton cmdAppPoolStart; protected global::System.Web.UI.WebControls.ImageButton cmdAppPoolStart;
/// <summary>
/// cmdAppPoolStop элемент управления.
/// </summary>
/// <remarks>
/// Автоматически создаваемое поле.
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
/// </remarks>
protected global::System.Web.UI.WebControls.LinkButton cmdAppPoolStop;
/// <summary> /// <summary>
/// cmdAppPoolRecycle элемент управления. /// cmdAppPoolRecycle элемент управления.
@ -397,7 +406,16 @@ namespace WebsitePanel.Portal {
/// Автоматически создаваемое поле. /// Автоматически создаваемое поле.
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части. /// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.LinkButton cmdAppPoolRecycle; protected global::System.Web.UI.WebControls.ImageButton cmdAppPoolRecycle;
/// <summary>
/// cmdAppPoolStop элемент управления.
/// </summary>
/// <remarks>
/// Автоматически создаваемое поле.
/// Для изменения переместите объявление поля из файла конструктора в файл кода программной части.
/// </remarks>
protected global::System.Web.UI.WebControls.ImageButton cmdAppPoolStop;
/// <summary> /// <summary>
/// dlTabs элемент управления. /// dlTabs элемент управления.