Método FlushLog del sitio FTP <FlushLog>
Información general
El método <FlushLog>
obliga a que todas las entradas del búfer de registro FTP se escriban desde el búfer en el archivo de registro, lo que vacía el búfer. <FlushLog>
funciona en el nivel de sitio FTP.
Compatibilidad
Versión | Notas |
---|---|
IIS 10.0 | El elemento <ftpServer> no se modificó en IIS 10.0. |
IIS 8.5 | El elemento <ftpServer> que incluye el método <FlushLog> no se modificó en IIS 8.5. |
IIS 8.0 | El elemento <ftpServer> que incluye el método <FlushLog> no se modificó en IIS 8.0. |
IIS 7.5 | Elemento <ftpServer> que incluye el método <FlushLog> enviado como una característica de IIS 7.5. |
IIS 7.0 | El elemento <ftpServer> que incluye el método <FlushLog> se introdujo en FTP 7.0, que era una descarga independiente para IIS 7.0. |
IIS 6,0 | N/D |
Configuración
Para admitir la publicación de FTP para el servidor web, debe instalar el servicio FTP. Para ello, siga estos pasos.
Windows Server 2012 o Windows Server 2012 R2
En la barra de tareas, haga clic en Administrador del servidor.
En Administrador del servidor, haga clic en el menú Administrar y, después, haga clic en Agregar roles y características.
En el asistente para Agregar roles y características, haga clic en Siguiente. Seleccione el tipo de instalación y haga clic en Siguiente. Seleccione el servidor de destino y haga clic en Siguiente.
En la página Roles de servidor, expanda Servidor web (IIS) y, a continuación, seleccione Servidor FTP.
Nota:
Para admitir la autenticación ASP.Membership o la autenticación del Administrador de IIS para el servicio FTP, también deberá seleccionar Extensibilidad de FTP, además de Servicio FTP.
.Haga clic en Siguiente y, después, en la página Seleccionar características, vuelva a hacer clic en Siguiente.
En la página Confirmar selecciones de instalación, haga clic en Instalar.
En la página Resultados , haga clic en Cerrar.
Windows 8 o Windows 8.1
En la pantalla Inicio, mueva el puntero hasta la esquina inferior izquierda, haga clic con el botón derecho en el botón Inicio y, a continuación, haga clic en Panel de control.
En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.
Expanda Internet Information Services y, después, seleccione Servidor FTP.
Nota:
Para admitir la autenticación ASP.Membership o la autenticación del Administrador de IIS para el servicio FTP, también deberá seleccionar Extensibilidad de FTP.
Haga clic en OK.
Haga clic en Cerrar.
Windows Server 2008 R2
En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, luego, haga clic en Administrador del servidor.
En el panel de jerarquía del Administrador del servidor, expanda Roles y, luego, haga clic en Servidor web (IIS).
En el panel Servidor web (IIS), desplácese hasta la sección Servicios de rol y, luego, haga clic en Agregar servicios de rol.
En la página Seleccionar servicios de rol del Asistente para agregar servicios de rol, expanda Servidor FTP.
Seleccione Servicio FTP.
Nota:
Para admitir la autenticación ASP.Membership o la autenticación del Administrador de IIS para el servicio FTP, también deberá seleccionar Extensibilidad de FTP.
Haga clic en Next.
En la página Confirmar selecciones de instalación, haz clic en Instalar.
En la página Resultados , haga clic en Cerrar.
Windows 7
En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.
Expanda Internet Information Services y, luego, Servidor FTP.
Seleccione Servicio FTP.
Nota:
Para admitir la autenticación ASP.Membership o la autenticación del Administrador de IIS para el servicio FTP, también deberá seleccionar Extensibilidad de FTP.
Haga clic en OK.
Windows Server 2008 o Windows Vista
Descargue el paquete de instalación desde la siguiente dirección URL:
Siga las instrucciones del siguiente tutorial para instalar el servicio FTP:
Procedimientos
Cómo vaciar el búfer de registro
No hay ningún control en el Administrador de IIS que llama al método <FlushLog>
. Puede llamar al método mediante programación con el código de ejemplo que se proporciona a continuación
Configuración
<ftpServer>
se configura en el nivel de sitio.
Atributos
No aplicable.
Elementos secundarios
No aplicable.
Código de ejemplo
Los ejemplos siguientes le permiten vaciar los búferes de registro de un sitio FTP mediante programación.
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample
{
private static void Main()
{
using (ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetApplicationHostConfiguration();
// Retrieve the sites collection.
ConfigurationSection sitesSection = config.GetSection("system.applicationHost/sites");
ConfigurationElementCollection sitesCollection = sitesSection.GetCollection();
// Locate a specific site.
ConfigurationElement siteElement = FindElement(sitesCollection, "site", "name", @"mySite");
if (siteElement == null) throw new InvalidOperationException("Element not found!");
// Create an object for the ftpServer element.
ConfigurationElement ftpServerElement = siteElement.GetChildElement("ftpServer");
// Create an instance of the FlushLog method.
ConfigurationMethodInstance FlushLog = ftpServerElement.Methods["FlushLog"].CreateInstance();
// Execute the method to flush the logs for the FTP site.
FlushLog.Execute();
}
}
private static ConfigurationElement FindElement(ConfigurationElementCollection collection, string elementTagName, params string[] keyValues)
{
foreach (ConfigurationElement element in collection)
{
if (String.Equals(element.ElementTagName, elementTagName, StringComparison.OrdinalIgnoreCase))
{
bool matches = true;
for (int i = 0; i < keyValues.Length; i += 2)
{
object o = element.GetAttributeValue(keyValues[i]);
string value = null;
if (o != null)
{
value = o.ToString();
}
if (!String.Equals(value, keyValues[i + 1], StringComparison.OrdinalIgnoreCase))
{
matches = false;
break;
}
}
if (matches)
{
return element;
}
}
}
return null;
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetApplicationHostConfiguration
' Retrieve the sites collection.
Dim sitesSection As ConfigurationSection = config.GetSection("system.applicationHost/sites")
Dim sitesCollection As ConfigurationElementCollection = sitesSection.GetCollection
' Locate a specific site.
Dim siteElement As ConfigurationElement = FindElement(sitesCollection,"site","name","mySite")
If (siteElement Is Nothing) Then
Throw New InvalidOperationException("Element not found!")
End If
' Create an object for the ftpServer element.
Dim ftpServerElement As ConfigurationElement = siteElement.GetChildElement("ftpServer")
' Create an instance of the FlushLog method.
Dim FlushLog As ConfigurationMethodInstance = ftpServerElement.Methods("FlushLog").CreateInstance()
' Execute the method to flush the logs for the FTP site.
FlushLog.Execute()
End Sub
Private Function FindElement(ByVal collection As ConfigurationElementCollection, ByVal elementTagName As String, ByVal ParamArray keyValues() As String) As ConfigurationElement
For Each element As ConfigurationElement In collection
If String.Equals(element.ElementTagName, elementTagName, StringComparison.OrdinalIgnoreCase) Then
Dim matches As Boolean = True
Dim i As Integer
For i = 0 To keyValues.Length - 1 Step 2
Dim o As Object = element.GetAttributeValue(keyValues(i))
Dim value As String = Nothing
If (Not (o) Is Nothing) Then
value = o.ToString
End If
If Not String.Equals(value, keyValues((i + 1)), StringComparison.OrdinalIgnoreCase) Then
matches = False
Exit For
End If
Next
If matches Then
Return element
End If
End If
Next
Return Nothing
End Function
End Module
JavaScript
// Create a Writable Admin Manager object.
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
// Retrieve the sites collection.
var sitesSection = adminManager.GetAdminSection("system.applicationHost/sites","MACHINE/WEBROOT/APPHOST");
var sitesCollection = sitesSection.Collection;
// Locate a specific site.
var siteElementPos = FindElement(sitesCollection,"site",["name","MySite"]);
if (siteElementPos == -1) throw "Element not found!";
// Retrieve the site element.
var siteElement = sitesCollection.Item(siteElementPos);
// Create an object for the ftpServer element.
var ftpServerElement = siteElement.ChildElements.Item("ftpServer");
// Create an instance of the FlushLog method.
var FlushLog = ftpServerElement.Methods.Item("FlushLog").CreateInstance();
// Execute the method to flush the log of the FTP site.
FlushLog.Execute();
function FindElement(collection, elementTagName, valuesToMatch) {
for (var i = 0; i < collection.Count; i++) {
var element = collection.Item(i);
if (element.Name == elementTagName) {
var matches = true;
for (var iVal = 0; iVal < valuesToMatch.length; iVal += 2) {
var property = element.GetPropertyByName(valuesToMatch[iVal]);
var value = property.Value;
if (value != null) {
value = value.toString();
}
if (value != valuesToMatch[iVal + 1]) {
matches = false;
break;
}
}
if (matches) {
return i;
}
}
}
return -1;
}
VBScript
' Create a Writable Admin Manager object.
Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
' Retrieve the sites collection.
Set sitesSection = adminManager.GetAdminSection("system.applicationHost/sites","MACHINE/WEBROOT/APPHOST")
Set sitesCollection = sitesSection.Collection
' Locate a specific site.
siteElementPos = FindElement(sitesCollection,"site",Array("name","MySite"))
If siteElementPos = -1 Then
WScript.Echo "Element not found!"
WScript.Quit
End If
' Retrieve the site element.
Set siteElement = sitesCollection.Item(siteElementPos)
' Create an object for the ftpServer element.
Set ftpServerElement = siteElement.ChildElements.Item("ftpServer")
' Create an instance of the FlushLog method.
Set FlushLog = ftpServerElement.Methods.Item("FlushLog").CreateInstance()
' Execute the method to flush the log of the FTP site.
FlushLog.Execute()
Function FindElement(collection, elementTagName, valuesToMatch)
For i = 0 To CInt(collection.Count) - 1
Set element = collection.Item(i)
If element.Name = elementTagName Then
matches = True
For iVal = 0 To UBound(valuesToMatch) Step 2
Set property = element.GetPropertyByName(valuesToMatch(iVal))
value = property.Value
If Not IsNull(value) Then
value = CStr(value)
End If
If Not value = CStr(valuesToMatch(iVal + 1)) Then
matches = False
Exit For
End If
Next
If matches Then
Exit For
End If
End If
Next
If matches Then
FindElement = i
Else
FindElement = -1
End If
End Function