Problemas al leer web.config

Iniciado por apache_scrc, 22 Diciembre 2010, 20:09 PM

0 Miembros y 1 Visitante están viendo este tema.

apache_scrc

Estimados,

tengo el siguiente WebService en VB.NET 2005 que al ingresar el código de un agente debería devolver su información respectiva.

Código (vbnet) [Seleccionar]
Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Data
Imports System.Data.SqlClient
Imports System
Imports System.Configuration
<WebService(Namespace:="WSAgentes")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Public Class Service
    Inherits System.Web.Services.WebService
    <WebMethod()> _
    Public Function WSAgentes(ByVal CodigoAgente As String) As String
        'Const fic As String = "conexion.txt"
        'Dim texto As String
        'Dim sr As New System.IO.StreamReader(fic)
        'texto = sr.ReadToEnd()
        'sr.Close()

        Dim conn1 As String = ConfigurationManager.ConnectionStrings("LocalSqlServer").ToString
        'Using conn As New SqlConnection("data source = XXX ; initial catalog = XXX ; user id = XXX; password = XXX")

        Dim conn As New SqlConnection(conn1)
        conn.Open()
        If CodigoAgente = "" Then
            Dim a As String = "Debe ingresar el código del agente"
            Return a
        Else
            Dim sel As String = "EXECUTE SP_CON_AGENTES '" & CodigoAgente & "'"
            Dim ds As New DataSet()
            Dim da As SqlDataAdapter
            Try
                'Asignar consulta rezaliada a una variable la q nos permitira mostrar el resultado como tabla
                da = New SqlDataAdapter(sel, conn)
                da.Fill(ds)
            Catch ex As Exception
                Throw ex
            End Try

            Dim a As String = ds.GetXml
            'Crea archivo en el disco
            'ds.WriteXmlSchema("c:\wsparticipe.xml")
            'Dim xmlNormal As New Xml.XmlDocument
            'xmlNormal.LoadXml(a)
            conn.Close()
            Return a
        End If
        'End Using
    End Function
End Class


El cual llama a un archivo web.config

Código (xml) [Seleccionar]
<?xml version="1.0"?>
<configuration>
    <connectionStrings>
        <add name="LocalSqlServer" connectionString="Data Source=XXX;Initial Catalog=XXX;user id=XXX;password=XXX;" providerName="System.Data.SqlClient"/>
    </connectionStrings>
</configuration>


El problema es que me ejecuta el WS, pero cuando ingreso el codigo del agente me genera el siguiente error

System.Data.SqlClient.SqlException: Error al intentar adjuntar una base de datos nombrada autom&#225;ticamente para el archivo C:\Documents and Settings\aaron.valenzuela\Mis documentos\Visual Studio 2005\WebSites\WSAgentes\App_Data\aspnetdb.mdf. Ya existe una base de datos con el mismo nombre, no se puede abrir el archivo especificado o se encuentra en un recurso compartido UNC.
   en System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   en System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
   en System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   en System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)
   en System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject)
   en System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart)
   en System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
   en System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
   en System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
   en System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
   en System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
   en System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
   en System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
   en System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
   en System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   en System.Data.SqlClient.SqlConnection.Open()
   en Service.WSAgentes(String CodigoAgente)

Alguien sabe que estos haciendo mal?????

[D4N93R]

Varias cosas:

1) Revisa bien la base de datos, el problema no es el webservice.
2) Hay mejores formas de ejecutar un Stored Procedure, usa SqlCommand.
3) Te falta un Finally para cerrar la conexión.

Estás usando SqlServer Express no? Recuerda siempre poner esos datos, más aún cuando el error probablemente esté ahí y no en el WS.

Saludos!

apache_scrc

Estimado cuando la conexión la tenia en el código y no aparte, esto me funcionaba perfectamente.

Estoy usando sqlexpress.
Tengo un conn.close para finalizar la conexión

Saludos,


[D4N93R]

CitarEstimado cuando la conexión la tenia en el código y no aparte, esto me funcionaba perfectamente.
No entendí esa parte.


CitarTengo un conn.close para finalizar la conexión
Ponlo dentro de un finally del manejo de excepciones.