Error en Servicio Web No se puede serializar el miembro System.ComponentModel.MarshalByValueComponent.Site de tipo System.ComponentModel.ISite porque es una interfaz

25/10/2004 - 16:29 por Luis Esteban Valencia | Informe spam
Hola.
Tengo un servicio web el cual he compilado y no genera ningun error pero
cuando le doy en agregar referencia en el proyecto asp.net me saca este
error.

El codigo del servicio web es este, pero compila sin problemas,

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Diagnostics;

using System.Web;

using System.Web.Services;

using System.Data.SqlClient;

namespace wsPortalProveedores

{

/// <summary>

/// Descripción breve de WSProveedores.

/// </summary>

public class WSProveedores : System.Web.Services.WebService

{

public WSProveedores()

{

//CODEGEN: llamada necesaria para el Diseñador de servicios Web ASP .NET

InitializeComponent();

}

private System.Data.SqlClient.SqlConnection conexion;

#region Código generado por el Diseñador de componentes


//Requerido por el Diseñador de servicios Web

private IContainer components = null;


/// <summary>

/// Método necesario para admitir el Diseñador. No se puede modificar

/// el contenido del método con el editor de código.

/// </summary>

private void InitializeComponent()

{

System.Configuration.AppSettingsReader configurationAppSettings = new
System.Configuration.AppSettingsReader();

this.conexion = new System.Data.SqlClient.SqlConnection();

//

// conexion

//

this.conexion.ConnectionString ((string)(configurationAppSettings.GetValue("Conexion1", typeof(string))));

}

/// <summary>

/// Limpiar los recursos que se estén utilizando.

/// </summary>

protected override void Dispose( bool disposing )

{

if(disposing && components != null)

{

components.Dispose();

}

base.Dispose(disposing);

}


#endregion

// EJEMPLO DE SERVICIO WEB

// El servicio de ejemplo HelloWorld() devuelve la cadena Hola a todos

// Para generar, quite la marca de comentario de las siguientes líneas y,
después, guarde y genere el proyecto

// Para probar el servicio Web, presione F5

// [WebMethod]

// public string HelloWorld()

// {

// return "Hola a todos";

// }

[WebMethod]

public bool verificar(string usuario, string password)

{

System.Configuration.AppSettingsReader configurationAppSettings = new
System.Configuration.AppSettingsReader();

conexion.ConnectionString ((string)(configurationAppSettings.GetValue("Conexion", typeof(string))));

SqlCommand mycmd = new SqlCommand();

mycmd.CommandText = "autenticar";

mycmd.Connection = conexion;

mycmd.CommandType = CommandType.StoredProcedure;

SqlParameter param1 = new SqlParameter();

SqlParameter param2 = new SqlParameter();

param1.Direction = ParameterDirection.Input;

param2.Direction = ParameterDirection.Input;

mycmd.Parameters.Add("@UID", usuario);

mycmd.Parameters.Add("@password", password);

conexion.Open();

SqlDataReader myreader = mycmd.ExecuteReader();

try

{

myreader.Read();

if(myreader.HasRows)

{

return true;

}

else

{

return false;

}

}

catch(Exception ex)

{

throw ex;

}

finally

{

conexion.Close();

}

}

[WebMethod]

public DataTable Proveedorenstock(string usuario)

{

SqlDataAdapter sqladp = new SqlDataAdapter("paproveedores1", conexion);

sqladp.SelectCommand.CommandType = CommandType.StoredProcedure;

sqladp.SelectCommand.Parameters.Add("@proveedor", usuario);

conexion.Open();

try

{

DataSet ds = new DataSet();

sqladp.Fill(ds, "Proveedoresenstock");

return ds.Tables["Proveedoresenstock"];

}

catch(Exception ex)

{

throw ex;

}

finally

{

conexion.Close();

}


}

}

}




Error de servidor en la aplicación '/wsPortalProveedores'.
-
-

No se puede serializar el miembro
System.ComponentModel.MarshalByValueComponent.Site de tipo
System.ComponentModel.ISite porque es una interfaz.
Descripción: Excepción no controlada al ejecutar la solicitud Web actual.
Revise el seguimiento de la pila para obtener más información acerca del
error y dónde se originó en el código.

Detalles de la excepción: System.NotSupportedException: No se puede
serializar el miembro System.ComponentModel.MarshalByValueComponent.Site de
tipo System.ComponentModel.ISite porque es una interfaz.

Error de código fuente:


Se ha generado una excepción no controlada durante la ejecución de la
solicitud Web actual. La información sobre el origen y la ubicación de la
excepción pueden identificarse utilizando la excepción del seguimiento de la
pila siguiente.


Seguimiento de la pila:


[NotSupportedException: No se puede serializar el miembro
System.ComponentModel.MarshalByValueComponent.Site de tipo
System.ComponentModel.ISite porque es una interfaz.]
System.Xml.Serialization.TypeScope.ImportTypeDesc(Type type, Boolean
canBePrimitive, MemberInfo memberInfo) +1283
System.Xml.Serialization.TypeScope.GetTypeDesc(Type type, MemberInfo
source, Boolean directReference) +50
System.Xml.Serialization.TypeScope.GetTypeDesc(Type type, MemberInfo
source)
System.Xml.Serialization.StructModel.GetPropertyModel(PropertyInfo
propertyInfo)
System.Xml.Serialization.StructModel.GetFieldModel(MemberInfo memberInfo)

System.Xml.Serialization.XmlReflectionImporter.ImportStructLikeMapping(Struc
tModel model, String ns)

System.Xml.Serialization.XmlReflectionImporter.ImportStructLikeMapping(Struc
tModel model, String ns)

System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel
model, String ns, ImportContext context, String dataType, Boolean repeats)
+440

[InvalidOperationException: Error al reflejar el tipo
'System.Data.DataTable'.]

System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel
model, String ns, ImportContext context, String dataType, Boolean repeats)
+1059

System.Xml.Serialization.XmlReflectionImporter.ImportAccessorMapping(MemberM
apping accessor, FieldModel model, XmlAttributes a, String ns, Type
choiceIdentifierType) +8242

System.Xml.Serialization.XmlReflectionImporter.ImportMemberMapping(XmlReflec
tionMember xmlReflectionMember, String ns, XmlReflectionMember[]
xmlReflectionMembers) +795

System.Xml.Serialization.XmlReflectionImporter.ImportMembersMapping(XmlRefle
ctionMember[] xmlReflectionMembers, String ns, Boolean hasWrapperElement)
+300

[InvalidOperationException: Error al reflejar 'ProveedorenstockResult'.]

System.Xml.Serialization.XmlReflectionImporter.ImportMembersMapping(XmlRefle
ctionMember[] xmlReflectionMembers, String ns, Boolean hasWrapperElement)
+607

System.Xml.Serialization.XmlReflectionImporter.ImportMembersMapping(String
elementName, String ns, XmlReflectionMember[] members, Boolean
hasWrapperElement) +108

System.Web.Services.Protocols.SoapReflector.ImportMembersMapping(XmlReflecti
onImporter xmlImporter, SoapReflectionImporter soapImporter, Boolean
serviceDefaultIsEncoded, Boolean rpc, SoapBindingUse use, SoapParameterStyle
paramStyle, String elementName, String elementNamespace, Boolean
nsIsDefault, XmlReflectionMember[] members, Boolean validate) +169

System.Web.Services.Protocols.SoapReflector.ReflectMethod(LogicalMethodInfo
methodInfo, Boolean client, XmlReflectionImporter xmlImporter,
SoapReflectionImporter soapImporter, String defaultNs) +2860

[InvalidOperationException: No se puede reflejar el método
WSProveedores.Proveedorenstock.]

System.Web.Services.Protocols.SoapReflector.ReflectMethod(LogicalMethodInfo
methodInfo, Boolean client, XmlReflectionImporter xmlImporter,
SoapReflectionImporter soapImporter, String defaultNs) +5415
System.Web.Services.Description.SoapProtocolReflector.ReflectMethod()
+130

System.Web.Services.Description.ProtocolReflector.ReflectBinding(ReflectedBi
nding reflectedBinding) +1818
System.Web.Services.Description.ProtocolReflector.Reflect() +506

System.Web.Services.Description.ServiceDescriptionReflector.ReflectInternal(
ProtocolReflector[] reflectors) +495
System.Web.Services.Description.ServiceDescriptionReflector.Reflect(Type
type, String url) +112
System.Web.Services.Protocols.DocumentationServerType..ctor(Type type,
String uri) +158
System.Web.Services.Protocols.DocumentationServerProtocol.Initialize()
+269
System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type,
HttpContext context, HttpRequest request, HttpResponse response, Boolean&
abortProcessing) +106

[InvalidOperationException: No se puede administrar la solicitud.]
System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type,
HttpContext context, HttpRequest request, HttpResponse response, Boolean&
abortProcessing) +205

System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type
type, HttpContext context, HttpRequest request, HttpResponse response) +82

[InvalidOperationException: No se pudo administrar la solicitud.]

System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type
type, HttpContext context, HttpRequest request, HttpResponse response) +154

System.Web.Services.Protocols.WebServiceHandlerFactory.GetHandler(HttpContex
t context, String verb, String url, String filePath) +94
System.Web.HttpApplication.MapHttpHandler(HttpContext context, String
requestType, String path, String pathTranslated, Boolean useAppConfig) +699

System.Web.MapHandlerExecutionStep.System.Web.HttpApplication+IExecutionStep
.Execute() +95
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&
completedSynchronously) +173





-
-

Información de versión: Versión de Microsoft .NET Framework:1.1.4322.573;
Versión de ASP.NET:1.1.4322.573



LUIS ESTEBAN VALENCIA
MICROSOFT DCE 2.
MIEMBRO ACTIVO DE ALIANZADEV
 

Leer las respuestas

#1 Alejandro Mezcua
25/10/2004 - 19:23 | Informe spam
Hola, Luis.

El el segundo método Web, devuelves un objeto DataTable. Este objeto no es
serializable (es decir, no se puede convertir a XML por reflection).

Tienes que devolver otra cosa en ese método, por ejemplo, puedes crear un
DataSet de una sola tabla y devolver el DataSet.

Un saludo,

Alejandro Mezcua
MVP .NET Compact Framework
http://www.byteabyte.net/

"Luis Esteban Valencia" wrote in message
news:#
Hola.
Tengo un servicio web el cual he compilado y no genera ningun error pero
cuando le doy en agregar referencia en el proyecto asp.net me saca este
error.

El codigo del servicio web es este, pero compila sin problemas,

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Diagnostics;

using System.Web;

using System.Web.Services;

using System.Data.SqlClient;

namespace wsPortalProveedores

{

/// <summary>

/// Descripción breve de WSProveedores.

/// </summary>

public class WSProveedores : System.Web.Services.WebService

{

public WSProveedores()

{

//CODEGEN: llamada necesaria para el Diseñador de servicios Web ASP .NET

InitializeComponent();

}

private System.Data.SqlClient.SqlConnection conexion;

#region Código generado por el Diseñador de componentes


//Requerido por el Diseñador de servicios Web

private IContainer components = null;


/// <summary>

/// Método necesario para admitir el Diseñador. No se puede modificar

/// el contenido del método con el editor de código.

/// </summary>

private void InitializeComponent()

{

System.Configuration.AppSettingsReader configurationAppSettings = new
System.Configuration.AppSettingsReader();

this.conexion = new System.Data.SqlClient.SqlConnection();

//

// conexion

//

this.conexion.ConnectionString > ((string)(configurationAppSettings.GetValue("Conexion1",


typeof(string))));

}

/// <summary>

/// Limpiar los recursos que se estén utilizando.

/// </summary>

protected override void Dispose( bool disposing )

{

if(disposing && components != null)

{

components.Dispose();

}

base.Dispose(disposing);

}


#endregion

// EJEMPLO DE SERVICIO WEB

// El servicio de ejemplo HelloWorld() devuelve la cadena Hola a todos

// Para generar, quite la marca de comentario de las siguientes líneas y,
después, guarde y genere el proyecto

// Para probar el servicio Web, presione F5

// [WebMethod]

// public string HelloWorld()

// {

// return "Hola a todos";

// }

[WebMethod]

public bool verificar(string usuario, string password)

{

System.Configuration.AppSettingsReader configurationAppSettings = new
System.Configuration.AppSettingsReader();

conexion.ConnectionString > ((string)(configurationAppSettings.GetValue("Conexion", typeof(string))));

SqlCommand mycmd = new SqlCommand();

mycmd.CommandText = "autenticar";

mycmd.Connection = conexion;

mycmd.CommandType = CommandType.StoredProcedure;

SqlParameter param1 = new SqlParameter();

SqlParameter param2 = new SqlParameter();

param1.Direction = ParameterDirection.Input;

param2.Direction = ParameterDirection.Input;

mycmd.Parameters.Add("@UID", usuario);

mycmd.Parameters.Add("@password", password);

conexion.Open();

SqlDataReader myreader = mycmd.ExecuteReader();

try

{

myreader.Read();

if(myreader.HasRows)

{

return true;

}

else

{

return false;

}

}

catch(Exception ex)

{

throw ex;

}

finally

{

conexion.Close();

}

}

[WebMethod]

public DataTable Proveedorenstock(string usuario)

{

SqlDataAdapter sqladp = new SqlDataAdapter("paproveedores1", conexion);

sqladp.SelectCommand.CommandType = CommandType.StoredProcedure;

sqladp.SelectCommand.Parameters.Add("@proveedor", usuario);

conexion.Open();

try

{

DataSet ds = new DataSet();

sqladp.Fill(ds, "Proveedoresenstock");

return ds.Tables["Proveedoresenstock"];

}

catch(Exception ex)

{

throw ex;

}

finally

{

conexion.Close();

}


}

}

}




Error de servidor en la aplicación '/wsPortalProveedores'.
-

No se puede serializar el miembro
System.ComponentModel.MarshalByValueComponent.Site de tipo
System.ComponentModel.ISite porque es una interfaz.
Descripción: Excepción no controlada al ejecutar la solicitud Web actual.
Revise el seguimiento de la pila para obtener más información acerca del
error y dónde se originó en el código.

Detalles de la excepción: System.NotSupportedException: No se puede
serializar el miembro System.ComponentModel.MarshalByValueComponent.Site


de
tipo System.ComponentModel.ISite porque es una interfaz.

Error de código fuente:


Se ha generado una excepción no controlada durante la ejecución de


la
solicitud Web actual. La información sobre el origen y la ubicación de la
excepción pueden identificarse utilizando la excepción del seguimiento de


la
pila siguiente.


Seguimiento de la pila:


[NotSupportedException: No se puede serializar el miembro
System.ComponentModel.MarshalByValueComponent.Site de tipo
System.ComponentModel.ISite porque es una interfaz.]
System.Xml.Serialization.TypeScope.ImportTypeDesc(Type type, Boolean
canBePrimitive, MemberInfo memberInfo) +1283
System.Xml.Serialization.TypeScope.GetTypeDesc(Type type, MemberInfo
source, Boolean directReference) +50
System.Xml.Serialization.TypeScope.GetTypeDesc(Type type, MemberInfo
source)
System.Xml.Serialization.StructModel.GetPropertyModel(PropertyInfo
propertyInfo)
System.Xml.Serialization.StructModel.GetFieldModel(MemberInfo


memberInfo)




System.Xml.Serialization.XmlReflectionImporter.ImportStructLikeMapping(Struc
tModel model, String ns)




System.Xml.Serialization.XmlReflectionImporter.ImportStructLikeMapping(Struc
tModel model, String ns)

System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel
model, String ns, ImportContext context, String dataType, Boolean repeats)
+440

[InvalidOperationException: Error al reflejar el tipo
'System.Data.DataTable'.]

System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel
model, String ns, ImportContext context, String dataType, Boolean repeats)
+1059




System.Xml.Serialization.XmlReflectionImporter.ImportAccessorMapping(MemberM
apping accessor, FieldModel model, XmlAttributes a, String ns, Type
choiceIdentifierType) +8242




System.Xml.Serialization.XmlReflectionImporter.ImportMemberMapping(XmlReflec
tionMember xmlReflectionMember, String ns, XmlReflectionMember[]
xmlReflectionMembers) +795




System.Xml.Serialization.XmlReflectionImporter.ImportMembersMapping(XmlRefle
ctionMember[] xmlReflectionMembers, String ns, Boolean hasWrapperElement)
+300

[InvalidOperationException: Error al reflejar 'ProveedorenstockResult'.]




System.Xml.Serialization.XmlReflectionImporter.ImportMembersMapping(XmlRefle
ctionMember[] xmlReflectionMembers, String ns, Boolean hasWrapperElement)
+607

System.Xml.Serialization.XmlReflectionImporter.ImportMembersMapping(String
elementName, String ns, XmlReflectionMember[] members, Boolean
hasWrapperElement) +108




System.Web.Services.Protocols.SoapReflector.ImportMembersMapping(XmlReflecti
onImporter xmlImporter, SoapReflectionImporter soapImporter, Boolean
serviceDefaultIsEncoded, Boolean rpc, SoapBindingUse use,


SoapParameterStyle
paramStyle, String elementName, String elementNamespace, Boolean
nsIsDefault, XmlReflectionMember[] members, Boolean validate) +169




System.Web.Services.Protocols.SoapReflector.ReflectMethod(LogicalMethodInfo
methodInfo, Boolean client, XmlReflectionImporter xmlImporter,
SoapReflectionImporter soapImporter, String defaultNs) +2860

[InvalidOperationException: No se puede reflejar el método
WSProveedores.Proveedorenstock.]




System.Web.Services.Protocols.SoapReflector.ReflectMethod(LogicalMethodInfo
methodInfo, Boolean client, XmlReflectionImporter xmlImporter,
SoapReflectionImporter soapImporter, String defaultNs) +5415
System.Web.Services.Description.SoapProtocolReflector.ReflectMethod()
+130




System.Web.Services.Description.ProtocolReflector.ReflectBinding(ReflectedBi
nding reflectedBinding) +1818
System.Web.Services.Description.ProtocolReflector.Reflect() +506




System.Web.Services.Description.ServiceDescriptionReflector.ReflectInternal(
ProtocolReflector[] reflectors) +495



System.Web.Services.Description.ServiceDescriptionReflector.Reflect(Type
type, String url) +112
System.Web.Services.Protocols.DocumentationServerType..ctor(Type type,
String uri) +158
System.Web.Services.Protocols.DocumentationServerProtocol.Initialize()
+269
System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type,
HttpContext context, HttpRequest request, HttpResponse response, Boolean&
abortProcessing) +106

[InvalidOperationException: No se puede administrar la solicitud.]
System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type,
HttpContext context, HttpRequest request, HttpResponse response, Boolean&
abortProcessing) +205

System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type
type, HttpContext context, HttpRequest request, HttpResponse response) +82

[InvalidOperationException: No se pudo administrar la solicitud.]

System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type
type, HttpContext context, HttpRequest request, HttpResponse response)


+154




System.Web.Services.Protocols.WebServiceHandlerFactory.GetHandler(HttpContex
t context, String verb, String url, String filePath) +94
System.Web.HttpApplication.MapHttpHandler(HttpContext context, String
requestType, String path, String pathTranslated, Boolean useAppConfig)


+699




System.Web.MapHandlerExecutionStep.System.Web.HttpApplication+IExecutionStep
.Execute() +95
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&
completedSynchronously) +173





-

Información de versión: Versión de Microsoft .NET Framework:1.1.4322.573;
Versión de ASP.NET:1.1.4322.573



LUIS ESTEBAN VALENCIA
MICROSOFT DCE 2.
MIEMBRO ACTIVO DE ALIANZADEV


Preguntas similares