PRACTICA XII

18
Ing. Hubner Janampa Patilla 27 de mayo de 2009 UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE INGENIERIA ESCUELA DE INGENIERIA DE SISTEMAS E INFORMATICA TEMA: ACCESO A DATOS CON ASP.NET y AJAX DOCENTE: HUBNER JANAMPA PATILLA MAIL: [email protected] HERRAMIENTA: VS .NET 2010 Noviembre - 2009 PRACTICA DE ACCESO A DATOS ASP.NET 1. DISEÑO DE LA INTERFAZ

description

PEQUEÑO EJEMPLO DE ASP

Transcript of PRACTICA XII

Page 1: PRACTICA XII

Ing. Hubner Janampa Patilla

27

de

ma

yo

de

20

09

UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE

HUAMANGA

FACULTAD DE INGENIERIA

ESCUELA DE INGENIERIA DE SISTEMAS E INFORMATICA

TEMA: ACCESO A DATOS CON ASP.NET y AJAX

DOCENTE: HUBNER JANAMPA PATILLA

MAIL: [email protected]

HERRAMIENTA: VS .NET 2010

Noviembre - 2009 PRACTICA DE ACCESO A DATOS ASP.NET

1. DISEÑO DE LA INTERFAZ

Page 2: PRACTICA XII

Ing. Hubner Janampa Patilla

27

de

ma

yo

de

20

09

DISEÑO DE LA BASE DE DATOS PUBS TABLA : authors

Page 3: PRACTICA XII

Ing. Hubner Janampa Patilla

27

de

ma

yo

de

20

09

2. CODIGO ASP .NET

<%@ Page Language="C#" AutoEventWireup="true"

CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

<title>Aplicación Web Creado por: Hubner Janampa Patilla - CURSO

: ADMINISTRACION BD - 2008 - ING SISTEMAS</title>

</head>

<body style="background-color: #669966">

<form id="form1" runat="server">

<div style="background-color: #339999">

<br />

<asp:Label ID="Label13" runat="server" Font-Bold="True"

Font-Italic="True" Font-Names="Arial Narrow"

Font-Size="32pt" ForeColor="Red" Text="ADO .NET

ASP.NET AJAX " Width="594px"

BackColor="LightSteelBlue"></asp:Label><br />

<br />

<table style="width: 597px; height: 109px" border="0">

<tr>

<td style="background-color: #3399cc; height:

33px;">

<asp:Label ID="Label7" runat="server"

Text="Seleccionar Author" Font-Bold="True"

Font-Italic="True" Font-

Underline="True"></asp:Label></td>

<td style="background-color: #3399cc; height:

33px;">

<asp:DropDownList ID="lstAuthor"

runat="server" Width="276px" BackColor="Black" Font-Bold="True" Font-

Names="Century" ForeColor="Yellow"

OnSelectedIndexChanged="lstAuthor_SelectedIndexChanged"

AutoPostBack="True">

</asp:DropDownList></td>

<td style="background-color: #3399cc; height:

33px;">

<asp:Button ID="btnUpdate" runat="server"

BackColor="Black" BorderColor="Lime" Font-Bold="True"

ForeColor="Yellow"

OnClick="btnUpdate_Click" Text="Update" />

&nbsp;<asp:Button ID="cmdDelete"

runat="server" Text="Delete" OnClick="cmdDelete_Click"

BackColor="Black" BorderColor="Yellow" Font-Bold="True"

ForeColor="Lime" /></td>

</tr>

<tr>

<td style="background-color: #3399cc; height:

52px;">

<strong><em><span style="text-decoration:

underline">Or:</span></em></strong></td>

<td style="background-color: #3399cc; height:

52px;">

<asp:Button ID="cmdInsert" runat="server"

Text="Insert New" CausesValidation="False" OnClick="cmdInsert_Click"

Page 4: PRACTICA XII

Ing. Hubner Janampa Patilla

27

de

ma

yo

de

20

09

BackColor="Black" Font-Bold="True" ForeColor="#8080FF" />

<asp:Button ID="btnCreate" runat="server"

BackColor="Black" BorderColor="Lime" Font-Bold="True"

ForeColor="#80FFFF" Text="Create New"

/></td>

<td style="background-color: #3399cc; height:

52px;">

</td>

</tr>

</table>

<br />

</div>

<table style="width: 593px; height: 147px; background-color:

#cc9966" border="0">

<tr>

<td style="width: 3px; height: 26px;">

<asp:Label ID="Label1" runat="server" Text="Unique

ID" Font-Bold="True" Font-Names="Monotype Corsiva"

ForeColor="Blue"

Width="107px"></asp:Label></td>

<td style="width: 3px; height: 26px;">

<asp:TextBox ID="txtID" runat="server"

Width="200px"></asp:TextBox></td>

<td style="width: 3px; height: 26px;">

<asp:Label ID="Label12" runat="server"

Text="(Required : ### - ## - #### form)" Width="218px" Font-

Bold="True" Font-Italic="True" Font-Names="Arial Narrow"

ForeColor="#404040"></asp:Label></td>

</tr>

<tr>

<td style="width: 3px; height: 21px">

<asp:Label ID="Label2" runat="server" Text="First

Name" Font-Bold="True" Font-Names="Monotype Corsiva"

ForeColor="Blue"

Width="107px"></asp:Label></td>

<td style="width: 3px; height: 21px">

<asp:TextBox ID="txtFirstName" runat="server"

Width="200px"></asp:TextBox></td>

<td style="width: 3px; height: 21px">

</td>

</tr>

<tr>

<td style="width: 3px">

<asp:Label ID="Label3" runat="server" Text="Last

Name" Font-Bold="True" Font-Names="Monotype Corsiva"

ForeColor="Blue"

Width="107px"></asp:Label></td>

<td style="width: 3px">

<asp:TextBox ID="txtLastName" runat="server"

Width="200px"></asp:TextBox></td>

<td style="width: 3px">

</td>

</tr>

<tr>

<td style="width: 3px; height: 26px;">

<asp:Label ID="Label4" runat="server" Text="Phone"

Font-Bold="True" Font-Names="Monotype Corsiva"

ForeColor="Blue"></asp:Label></td>

<td style="width: 3px; height: 26px;">

<asp:TextBox ID="txtPhone" runat="server"

Width="200px"></asp:TextBox></td>

Page 5: PRACTICA XII

Ing. Hubner Janampa Patilla

27

de

ma

yo

de

20

09

<td style="width: 3px; height: 26px">

</td>

</tr>

<tr>

<td style="width: 3px; height: 22px">

<asp:Label ID="Label5" runat="server"

Text="Address" Font-Bold="True" Font-Names="Monotype Corsiva"

ForeColor="Blue"

Width="61px"></asp:Label></td>

<td style="width: 3px; height: 22px">

<asp:TextBox ID="txtAddress" runat="server"

Width="200px"></asp:TextBox></td>

<td style="width: 3px; height: 22px">

</td>

</tr>

<tr>

<td style="width: 3px; height: 26px;">

<asp:Label ID="Label8" runat="server" Text="City"

Font-Bold="True" Font-Names="Monotype Corsiva"

ForeColor="Blue"

Width="41px"></asp:Label></td>

<td style="width: 3px; height: 26px;">

<asp:TextBox ID="txtCity" runat="server"

Width="200px"></asp:TextBox></td>

<td style="width: 3px; height: 26px;">

</td>

</tr>

<tr>

<td style="width: 3px">

<asp:Label ID="Label6" runat="server" Text="State"

Font-Bold="True" Font-Names="Monotype Corsiva"

ForeColor="Blue"

Width="45px"></asp:Label></td>

<td style="width: 3px">

<asp:TextBox ID="txtState" runat="server"

Width="200px"></asp:TextBox></td>

<td style="width: 3px">

</td>

</tr>

<tr>

<td style="width: 3px">

<asp:Label ID="Label9" runat="server" Text="Zip

Code" Font-Bold="True" Font-Names="Monotype Corsiva"

ForeColor="Blue"

Width="92px"></asp:Label></td>

<td style="width: 3px">

<asp:TextBox ID="txtZip" runat="server"

Width="200px"></asp:TextBox></td>

<td style="width: 3px">

</td>

</tr>

</table>

<br />

<table style="width: 599px; height: 111px; background-color:

#9999cc" border="0">

<tr>

<td style="width: 3px; height: 76px;">

<asp:Label ID="Label10" runat="server"

Text="Contract :" Font-Bold="True" Font-Names="Monotype Corsiva"

ForeColor="Blue"></asp:Label></td>

<td style="width: 3px; height: 76px;">

Page 6: PRACTICA XII

Ing. Hubner Janampa Patilla

27

de

ma

yo

de

20

09

<asp:CheckBox ID="chkContract" runat="server"

/></td>

<td style="height: 76px">

&nbsp;<asp:Label ID="Label11" runat="server"

Text="(required: any five digits)" Width="183px" Font-Names="Arial

Narrow" ForeColor="Red"></asp:Label></td>

</tr>

</table>

<br />

<asp:Label ID="lblStatus" runat="server"

Text="lblStatus"></asp:Label>

</form>

</body>

</html>

3. CODIGO C# .NET using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page

{

string connectionString = "Data

Source=INFORMATICA\\INFORMATICA;Initial Catalog=pubs;User ID=sa;

Password=123456";

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack == true)

{

if (!this.IsPostBack) {

FillAuthorList();

}

}

}

protected void cmdInsert_Click(object sender, EventArgs e)

{

if (txtID.Text == "" || txtFirstName.Text == "" ||

txtLastName.Text == "") {

lblStatus.Text = "Registro ID, FIRST NAME AND LAST NAME is

required";

}

//DEFINIENDO OBJETOS ADO .NET

string insertSQL;

insertSQL = "INSERT INTO Authors (";

insertSQL += "au_id, au_fname,au_lname,";

insertSQL += "phone, address, city,state,zip,contract)";

insertSQL += "VALUES(";

Page 7: PRACTICA XII

Ing. Hubner Janampa Patilla

27

de

ma

yo

de

20

09

insertSQL += "@au_id,@au_fname,@au_lname,";

insertSQL += "@phone,@address,@city,@state,@zip,@contract)";

SqlConnection con = new SqlConnection(connectionString);

SqlCommand cmd = new SqlCommand(insertSQL, con);

//ADD PARAMETROS

cmd.Parameters.AddWithValue("@au_id",txtID.Text);

cmd.Parameters.AddWithValue("@au_fname", txtFirstName.Text);

cmd.Parameters.AddWithValue("@au_lname",txtLastName.Text);

cmd.Parameters.AddWithValue("@phone",txtPhone.Text);

cmd.Parameters.AddWithValue("@address",txtAddress.Text);

cmd.Parameters.AddWithValue("@city",txtCity.Text);

cmd.Parameters.AddWithValue("@state",txtState.Text);

cmd.Parameters.AddWithValue("@zip",txtZip.Text);

cmd.Parameters.AddWithValue("@contract",

Convert.ToInt16(chkContract.Checked));

int added = 0;

try

{

con.Open();

added = cmd.ExecuteNonQuery();

lblStatus.Text = added.ToString() + "registros

insertados";

}

catch (Exception err)

{

lblStatus.Text = "Error al insertar el registro";

lblStatus.Text += err.Message;

}

finally {

con.Close();

}

if (added > 0) {

FillAuthorList();

}

}

public void FillAuthorList(){

lstAuthor.Items.Clear();

string selectSQL = "SELECT au_lname,au_fname,au_id FROM

Authors";

SqlConnection con = new SqlConnection(connectionString);

SqlCommand cmd = new SqlCommand(selectSQL, con);

SqlDataReader reader;

try

{

con.Open();

reader = cmd.ExecuteReader();

while (reader.Read())

{

ListItem newItem = new ListItem();

newItem.Text = reader["au_id"] + ", " +

reader["au_fname"];

Page 8: PRACTICA XII

Ing. Hubner Janampa Patilla

27

de

ma

yo

de

20

09

newItem.Value = reader["au_id"].ToString();

lstAuthor.Items.Add(newItem);

}

reader.Close();

}

catch (Exception err)

{

lblStatus.Text = "Error en la lectura de datos...";

lblStatus.Text += err.Message;

}

finally{

con.Close();

}

}

protected void cmdDelete_Click(object sender, EventArgs e)

{

string deleteSQL;

deleteSQL = "DELETE * FROM Authors";

deleteSQL += "WHERE au_id=@au_id";

SqlConnection con = new SqlConnection(connectionString);

SqlCommand cmd = new SqlCommand(deleteSQL, con);

cmd.Parameters.AddWithValue("@au_id",

lstAuthor.SelectedItem.Value);

int delete = 0;

try

{

con.Open();

delete = cmd.ExecuteNonQuery();

}

catch (Exception err)

{

lblStatus.Text = "Error deleting author";

lblStatus.Text += err.Message;

}

finally {

con.Close();

}

if (delete > 0) {

FillAuthorList();

}

}

protected void btnUpdate_Click(object sender, EventArgs e)

{

//DEFINIENDO OBJETOS ADO .NET

string updateSQL;

updateSQL = "UPDATE Authors SET ";

updateSQL += "au_id=@au_id,

Page 9: PRACTICA XII

Ing. Hubner Janampa Patilla

27

de

ma

yo

de

20

09

au_fname=@au_fname,au_lname=@au_lname,";

updateSQL += "phone=@phone, address=@address,

city=@city,state=@state,zip=@zip,contract=@contract)";

updateSQL += "WHERE au_id=@au_id_original";

SqlConnection con = new SqlConnection(connectionString);

SqlCommand cmd = new SqlCommand(updateSQL, con);

//ADD PARAMETROS

cmd.Parameters.AddWithValue("@au_id", txtID.Text);

cmd.Parameters.AddWithValue("@au_fname", txtFirstName.Text);

cmd.Parameters.AddWithValue("@au_lname", txtLastName.Text);

cmd.Parameters.AddWithValue("@phone", txtPhone.Text);

cmd.Parameters.AddWithValue("@address", txtAddress.Text);

cmd.Parameters.AddWithValue("@city", txtCity.Text);

cmd.Parameters.AddWithValue("@state", txtState.Text);

cmd.Parameters.AddWithValue("@zip", txtZip.Text);

cmd.Parameters.AddWithValue("@contract",

Convert.ToInt16(chkContract.Checked));

cmd.Parameters.AddWithValue("@au_id_original",lstAuthor.SelectedItem.V

alue);

try

{

con.Open();

int update = cmd.ExecuteNonQuery();

lblStatus.Text = update.ToString() + "registros

actualizados";

}

catch (Exception err)

{

lblStatus.Text = "Error al actualizar author";

lblStatus.Text += err.Message;

}

finally

{

con.Close();

}

}

protected void lstAuthor_SelectedIndexChanged(object sender,

EventArgs e)

{

//DEFINIENDO ADO .NET OBJECT

string selectSQL;

selectSQL = "SELECT * FROM Authors";

selectSQL += "WHERE au_id='" +

lstAuthor.SelectedItem.Value + "'";

SqlConnection con = new SqlConnection(connectionString);

SqlCommand cmd = new SqlCommand(selectSQL, con);

SqlDataReader reader;

//abrimos la base de datos....

try

{

Page 10: PRACTICA XII

Ing. Hubner Janampa Patilla

27

de

ma

yo

de

20

09

con.Open();

reader=cmd.ExecuteReader();

reader.Read();

//fill control...

txtID.Text = reader["au_id"].ToString();

txtFirstName.Text = reader["au_fname"].ToString();

txtLastName.Text = reader["au_lname"].ToString();

txtPhone.Text = reader["phone"].ToString();

txtAddress.Text = reader["address"].ToString();

txtCity.Text = reader["city"].ToString();

txtState.Text = reader["state"].ToString();

txtZip.Text = reader["zip"].ToString();

chkContract.Checked = (bool)reader["contract"];

reader.Close();

lblStatus.Text = "";

}

catch (Exception err)

{

lblStatus.Text = "Error getting author.";

lblStatus.Text += err.Message;

}

finally

{

con.Close();

}

}

}

Page 11: PRACTICA XII

Ing. Hubner Janampa Patilla

27

de

ma

yo

de

20

09

4. SALIDA EN EL NAVEGADOR WEB

Nota:

Para el 2do Examen Práctico Estudiar el capítulo 13 y 14 del libro: Beginning ASP.NET 2.0 in C# 2008, From Novice to Professional, Matthew MacDonald

UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA

Page 12: PRACTICA XII

Ing. Hubner Janampa Patilla

27

de

ma

yo

de

20

09

FACULTAD DE INGENIERÍA

ESCUELA DE ING. SISTEMAS

ADMINISTRACION DE BASES DE DATOS

TRABAJO PRÁCTICO

Realizar una aplicación en ASP.NET (VISUAL STUDIO .NET 2005), para grabar, actualizar,

eliminar la tabla oportunidades, la cual permite seleccionar el cliente y el empleado, validar los

campos y utilizar el Mater Page.

Diseño físico de la BD.

Puntaje:

Diseño de base de datos: 1pt

Interfaz: 2 pt

Grabar: 4 pt

Actualizar: 4 pt

Eliminar: 4 pt

Recorrido 5 pt:

Nota: Utilice POO , Procedimientos Almacenados y ADO .NET desconectado.

Page 13: PRACTICA XII

Ing. Hubner Janampa Patilla

27

de

ma

yo

de

20

09

Apedice : Configurar directorios virtuales del servidor de

informes.

En Reporting Services, las direcciones URL se utilizan para obtener acceso al servidor de informes, al

Administrador de informes, al Generador de informes y a informes individuales. En este tema se

describen las direcciones URL que se utilizan para obtener acceso al servidor de informes y al

Administrador de informes, se proporcionan directrices acerca de la creación de los directorios virtuales

de cada aplicación y se incluye un resumen de la configuración almacenada en los archivos de

configuración.

Nota:

Sin embargo, no se describe el acceso URL al Generador de informes ni a informes específicos

almacenados en el servidor de informes. Para obtener más información acerca del acceso URL

a estos elementos, vea Iniciar la herramienta Generador de informes y Using a URL to Access

Report Server Items en los Libros en pantalla de SQL Server.

Acerca de las direcciones URL y los directorios virtuales para un servidor de informes en el modo

integrado de SharePoint

Si se configura un servidor de informes para ejecutarse en una implementación más amplia de una

tecnología o producto de SharePoint, la construcción de las direcciones URL y los directorios virtuales se

verá afectada de las siguientes formas:

Para el acceso URL a elementos específicos, use siempre una dirección URL completa que

incluya la extensión de nombre de archivo (como .rdl para un informe). Se hace referencia a

todos los elementos de un sitio de SharePoint mediante direcciones URL completas, que

incluirán una extensión de nombre de archivo utilizada para distinguir entre los distintos tipos

de elementos del servidor de informes. Debe especificar direcciones URL completas al hacer

referencia a modelos y orígenes de datos compartidos en los informes y al especificar un

servidor de destino y carpetas para operaciones de publicación en un servidor de informes.

Para implementaciones simultáneas en las que el servidor de informes y la instancia de la

tecnología de SharePoint estén instalados en el mismo equipo, no puede utilizar

http://localhost/reportserver. Si se utiliza http://localhost para obtener acceso a la aplicación

Web de SharePoint, se debe usar un sitio Web no predeterminado o una asignación de puerto

única para obtener acceso a un servidor de informes. Además, si el servidor de informes está

integrado en un conjunto de servidores de SharePoint, el acceso localhost a un servidor de

informes no se resolverá para los nodos de la implementación que estén instalados en equipos

remotos.

La dirección URL y el directorio virtual del Administrador de informes no se pueden configurar.

Si los configura, ya no funcionarán después de implementar un servidor de informes en el modo

integrado de SharePoint. El Administrador de informes no se admite en este modo.

Para obtener más información acerca de los modos de implementación y los requisitos de las direcciones

URL para publicar elementos, vea Modos de implementación para Reporting Services y Implementar

informes, modelos y orígenes de datos compartidos en un sitio de SharePoint.

Acerca de las direcciones URL y los directorios virtuales para un servidor de informes en modo nativo

En SQL Server 2005 Reporting Services, se obtiene acceso al servidor de informes y al Administrador de

informes a través de direcciones URL que incluyen directorios virtuales dedicados configurados

específicamente para cada componente.

Page 14: PRACTICA XII

Ing. Hubner Janampa Patilla

27

de

ma

yo

de

20

09

El directorio virtual del Administrador de informes se utiliza para obtener acceso al

Administrador de informes. El nombre del directorio virtual predeterminado del Administrador

de informes es reports.

El directorio virtual del servidor de informes proporciona acceso mediante programación a

extremos SOAP del servicio Web del servidor de informes. Es también el nodo raíz del espacio

de nombres de carpetas del servidor de informes que proporciona direcciones URL para

informes, recursos, modelos, orígenes de datos compartidos y carpetas almacenadas en el

servidor de informes. El nombre del directorio virtual predeterminado del servidor de informes

es reportserver.

Los directorios virtuales constituyen una parte de la dirección URL completa que se utiliza para tener

acceso al Administrador de informes y al servidor de informes. Una dirección URL completa incluye las

siguientes partes.

http:// o https://

La dirección URL comienza con un prefijo. El prefijo https se utiliza cuando el servidor está

configurado para Capa de sockets seguros (SSL).

Http:// y https:// son los prefijos más comunes, pero también se admiten otros. Para obtener

más información acerca de la creación de direcciones URL, vea URL Access Syntax en los Libros

en pantalla de SQL Server.

Un nombre de servidor

Puede ser el nombre del equipo en la red. Puede ser localhost si se tiene acceso a él

localmente. Si se tiene acceso al equipo mediante una conexión de Internet, debe ser un

nombre de dominio completo.

Un sitio Web

El sitio Web es una construcción IIS que identifica qué aplicación recibe la solicitud.

Puede ser el sitio Web predeterminado. Si está utilizando un sitio Web personalizado, puede ser

una dirección IP, un encabezado de host o un número de puerto. Para obtener más información

acerca de las diversas formas de identificar un sitio Web, vea el tema sobre el alojamiento de

varios sitios Web en un único servidor en la documentación de los Servicios de Internet

Information Server (IIS).

Un directorio virtual

El directorio virtual es la única parte de la dirección URL que se configura mediante Reporting

Services.

Para crear el directorio virtual, utilice la herramienta de configuración de Reporting Services. Si

está instalando una configuración predeterminada, el programa de instalación creará el

directorio virtual automáticamente.

Cuando el programa de instalación crea el directorio virtual, utiliza el nombre de la instancia, si

la hubiera. Por ejemplo, si instala SQL Server 2005 Express Edition with Advanced Services con

la configuración predeterminada, el programa de instalación utilizará reportserver$SQLEXPRESS

para el nombre del directorio virtual.

Nota:

Las direcciones URL proporcionan acceso de usuario final o mediante programación al servidor

de informes. Para obtener más información acerca de las conexiones con el servidor de

informes, vea Conexiones y cuentas de una implementación de Reporting Services en los

Page 15: PRACTICA XII

Ing. Hubner Janampa Patilla

27

de

ma

yo

de

20

09

Libros en pantalla de SQL Server.

Ejemplos de direcciones URL de Reporting Services

En la lista siguiente se muestran algunos ejemplos del aspecto que puede tener una dirección URL del

servidor de informes:

http://localhost/reportserver

http://localhost/reportserver$SQLEXPRESS

http://sales01/reportserver

http://sales01:8080/reportserver

https://sales.adventure-works.com/reportserver

https://www.adventure-works.com:8080/reportserver01

Las direcciones URL que se utilizan para obtener acceso al Administrador de informes comparten un

formato similar y suelen crearse en el mismo sitio Web que aloja al servidor de informes. La única

diferencia es el nombre del directorio virtual (en este caso es reports, pero se puede configurar para

que se utilice el nombre que se prefiera):

http://localhost/reports

http://localhost/reports$SQLEXPRESS

http://sales01/reports

http://sales01:8080/reports

https://sales.adventure-works.com/reports

https://www.adventure-works.com:8080/reports

Directrices para la configuración de directorios virtuales

Los directorios virtuales del servidor de informes y del Administrador de informes se deben crear en un

sitio Web existente. Puede utilizar el sitio Web predeterminado o un sitio Web personalizado. Puede

utilizar el mismo sitio Web para ambos directorios virtuales. No hay requisitos especiales para el sitio

Web. Toda la configuración de seguridad, ASP.NET, rutas de acceso, permisos, etc. se lleva a cabo en los

directorios virtuales.

Al crear el directorio virtual, la identidad del servicio Web del servidor de informes se configura

automáticamente. La versión de los Servicios de Internet Information Server (IIS) que utiliza determina

la identidad del servicio Web:

En IIS 6.0, el grupo de aplicaciones que contiene el sitio Web determina la identidad del

servicio Web. De forma predeterminada es NetworkService.

En IIS 5.0, la identidad del servicio Web es siempre la identidad del proceso ASP.NET. De forma

predeterminada es nombreDeEquipo\ASPNET.

Los directorios virtuales de Reporting Services están configurados para utilizar ASP.NET 2.0 (versión que

se instala con SQL Server). Si ejecuta versiones anteriores de ASP.NET en el servidor Web, asegúrese de

que no haya conflictos entre las diferentes versiones de ASP.NET. Las dos versiones principales de

ASP.NET no se pueden ejecutar en el mismo proceso. En IIS 6.0, puede ejecutar diferentes versiones de

ASP.NET simultáneamente si utiliza grupos de aplicaciones diferentes para cada versión. En IIS 5.0,

cada versión de ASP.NET se ejecuta automáticamente como un proceso separado.

Los directorios virtuales del servidor de informes están configurados para el acceso a la intranet. El

acceso anónimo está deshabilitado de manera predeterminada. En la mayoría de los casos, las

direcciones URL del servidor de informes utilizan nombres de red de equipo. Si desea configurar

Reporting Services para conexiones a Internet, puede ser necesario modificar los archivos de

configuración del servidor de informes. Para obtener más información, vea la sección "Configuración

Page 16: PRACTICA XII

Ing. Hubner Janampa Patilla

27

de

ma

yo

de

20

09

para especificar las direcciones URL utilizadas en Reporting Services" de este tema y Configurar un

servidor de informes para acceso a Internet.

No se puede configurar un directorio virtual del servidor de informes para usar archivos de programa o

de datos en un equipo remoto. El directorio virtual del servidor de informes debe definirse en el equipo

donde se encuentren los archivos de programa de Reporting Services. No se admite la asignación de un

directorio virtual del servidor de informes a una carpeta compartida mediante una ruta UNC o una

unidad asignada.

Para crear y configurar directorios virtuales, utilice la herramienta de configuración de Reporting

Services.

Para ejecutar el servidor de informes y el Administrador de informes en un sitio Web personalizado, vea

Cómo configurar Reporting Services para que use un sitio Web no predeterminado (configuración de

Reporting Services).

Para especificar un grupo de aplicaciones para el servicio Web del servidor de informes, utilice la página

Identidad de servicio Web de la herramienta de configuración de Reporting Services.

Configuración personalizada en IIS

Al igual que con los demás directorios virtuales, puede personalizar más aún los directorios virtuales del

servidor de informes y del Administrador de informes a través de los Servicios de Microsoft Internet

Information Server (IIS). Esto sólo debería ser necesario en caso de que se implementara una extensión

de seguridad personalizada o de que se utilizara un sitio Web no predeterminado. Si personaliza la

configuración e interrumpe la implementación como resultado, puede utilizar la herramienta de

configuración de Reporting Services para restablecer los directorios virtuales con el fin de utilizar la

configuración predeterminada.

Usar un número de puerto personalizado

Para configurar el servidor de informes o el Administrador de informes de modo que utilicen un puerto

distinto al 80, es necesario editar los archivos de configuración.

1. Abra RSReportServer.config en un editor de texto.

2. Anexe el número de puerto al valor UrlRoot en el archivo rsreportserver.config. Por ejemplo, si

Urlroot está establecido en http://sales01/report server, establézcalo en

http://sales01:8080/reportserver.

3. Abra RSWebApplication.config en un editor de texto.

4. Establezca ReportServerUrl en la misma dirección URL especificada en UrlRoot.

5. Elimine el valor (pero no las etiquetas) de ReportServerVirtualDirectory.

6. Guarde ambos archivos.

Si está utilizando un puerto personalizado para un sitio configurado para SSL, es necesario realizar

pasos adicionales. Para obtener más información acerca del uso de SSL en un puerto distinto al 443, vea

Configurar un servidor de informes para conexiones SSL.

Redirección al directorio virtual del Administrador de informes

A través de IIS, puede utilizar el Administrador de informes como página principal predeterminada para

el servidor Web. Para configurar la redirección, utilice los siguientes valores:

1. Abra el Administrador de IIS.

2. Haga clic con el botón secundario en el sitio Web que aloja el Administrador de informes y

seleccione Propiedades.

3. Haga clic en la ficha Directorio principal.

4. Haga clic en Una redirección a una dirección URL.

5. En Redirigir a, escriba /reports. Elimine "http://" si está en el cuadro de texto.

Page 17: PRACTICA XII

Ing. Hubner Janampa Patilla

27

de

ma

yo

de

20

09

6. Seleccione Un directorio por debajo de la URL escrita si utiliza IIS 6.0. Si utiliza IIS 5.0, la

opción que debe seleccionar es Un directorio por debajo de éste.

7. Haga clic en Aceptar.

Configuración para especificar las direcciones URL utilizadas en Reporting Services

Los archivos de configuración de Reporting Services incluyen parámetros cuyo valor es una dirección

URL. En la tabla siguiente se proporciona un resumen de todas las direcciones URL que se pueden

especificar en un archivo de configuración de Reporting Services. Puede utilizar las descripciones para

comparar las direcciones URL. Para ver un ejemplo del uso conjunto de algunas de estas

configuraciones, vea Archivo de configuración RSWebApplication.

Configuración Descripción

ReportServerVirtualDirectory Especifica el extremo SOAP del servidor de informes que

utiliza el Administrador de informes. Los valores válidos

incluyen el nombre del directorio virtual del servidor de

informes. Por ejemplo, si la dirección URL del servidor de

informes es http://adventure-

works.com/servidorDeInformes, el valor de

ReportServerVirtualDirectory es servidorDeInformes.

El Administrador de informes utiliza localhost para

conectarse al servidor de informes. Si localhost no está

habilitado, en su lugar utilice ReportServerUrl.

Esta configuración se define en el archivo

RSWebApplication.config. Este valor se crea durante la

instalación o con la herramienta de configuración de

Reporting Services cuando se configura el directorio virtual

del Administrador de informes. También puede editar el

archivo de configuración para modificar el valor.

Esta configuración requiere que el Administrador de

informes y el servidor de informes se configuren para utilizar

el mismo sitio Web. Si utilizan diferentes sitios Web, elimine

el valor de ReportServerVirtualDirectory y utilice

ReportServerUrl en su lugar.

ReportServerUrl Proporciona un modo alternativo de especificar el extremo

SOAP del servidor de informes que utiliza el Administrador

de informes. Puede utilizar esta configuración en lugar de

ReportServerVirtualDirectory cuando los directorios

virtuales del Administrador de informes y del servidor de

informes estén alojados en servidores o sitios Web

diferentes.

Para especificar esta configuración, debe editar el archivo

RSWebApplication.config manualmente. Los valores válidos

incluyen http://<servidor>/<servidorDeInformes> o

https://<servidor>/<servidorDeInformes> si utiliza

certificados SSL. Si el Administrador de informes está

instalado por separado en un servidor Web para Internet,

este valor debe ser un nombre de dominio completo que se

pueda utilizar para obtener acceso a una instancia del

servidor de informes detrás del firewall. Este valor no se

puede establecer nunca en localhost.

Si un certificado SSL (Capa de sockets seguros) está

instalado, este valor debe ser el nombre del servidor

registrado para ese certificado. Si se produce el error "Se ha

Page 18: PRACTICA XII

Ing. Hubner Janampa Patilla

27

de

ma

yo

de

20

09

terminado la conexión: no se puede establecer una relación

de confianza para el canal seguro SSL/TLS", establezca

ReportServerUrl en el nombre de dominio completo del

servidor para el que se ha emitido el certificado SSL. Por

ejemplo, si se ha registrado el certificado para

https://adventure-works.com.onlinesales, la dirección

URL del servidor de informes será https://adventure-

works.com.onlinesales/reportserver.

UrlRoot Las extensiones de entrega utilizan este parámetro para

componer la dirección URL que se utiliza para obtener

acceso a los elementos almacenados en el servidor de

informes. Por ejemplo, si se emplea la extensión de entrega

Correo electrónico del Servidor de informes, se utilizará el

valor de UrlRoot para crear un hipervínculo al informe que

se va a distribuir.

Este valor también se utiliza para resolver vínculos en

informes representados generados mediante procesamiento

desatendido de informes.

Esta configuración se especifica en el archivo

RSReportServer.config.

Este valor se especifica durante la instalación o mediante la

herramienta de configuración de Reporting Services si el

servidor de informes se instaló sólo para archivos. El valor

debe ser una dirección URL válida para el servidor de

informes. Si se va a obtener acceso al servidor de informes

a través de Internet, establézcalo en un valor accesible a

través de una conexión a Internet.

Vea también

Tareas

Cómo configurar Reporting Services para que use un sitio Web no predeterminado (configuración de

Reporting Services)

Conceptos

Configurar componentes de Reporting Services

Otros recursos

Directorio virtual del servidor de informes (Configuración de Reporting Services)