Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    45

    Problema connessione db sql

    Salve a tutti, ho questo genere di problema, sto implementando un'applicazione web con un db sql.
    Se lavoro in visual studio non ho alcun problema, ovvero posso connettermi ai dati, vedo le tabelle correttamente ecc.
    Se vado nel browser e cerco di aprire le tabelle ottengo l'errore di seguito.
    Premetto che per l'acceso al db utilizzo l'autenticazione di windows e nella connectiostring le credenziali sono corrette.

    codice:
    Errore server nell'applicazione '/Easy_Sale'. 
    ________________________________________
    Accesso non riuscito per l'utente 'IIS APPPOOL\DefaultAppPool'. 
    Descrizione: Eccezione non gestita durante l'esecuzione della richiesta Web corrente. Per ulteriori informazioni sull'errore e sul suo punto di origine nel codice, vedere l'analisi dello stack. 
    
    Dettagli eccezione: System.Data.SqlClient.SqlException: Accesso non riuscito per l'utente 'IIS APPPOOL\DefaultAppPool'.
    
    Errore nel codice sorgente: 
    Durante l'esecuzione della richiesta Web corrente è stata generata un'eccezione non gestita. Per informazioni sull'origine e la posizione dell'eccezione, vedere l'analisi dello stack dell'eccezione riportata di seguito. 
    
    Analisi dello stack: 
    
    [SqlException (0x80131904): Accesso non riuscito per l'utente 'IIS APPPOOL\DefaultAppPool'.]
       System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +6256377
       System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +245
       System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1099
       System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) +53
       System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject) +248
       System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart) +6271242
       System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +6271208
       System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +354
       System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +703
       System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) +54
       System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) +6272472
       System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) +81
       System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +1657
       System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +88
       System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +6275911
       System.Data.SqlClient.SqlConnection.Open() +258
       System.Data.Common.DbDataAdapter.QuietOpen(IDbConnection connection, ConnectionState& originalState) +53
       System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +188
       System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +573
       System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +161
       System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +2788038
       System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +27
       System.Web.UI.WebControls.DataBoundControl.PerformSelect() +261
       System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +82
       System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +95
       System.Web.UI.Control.EnsureChildControls() +146
       System.Web.UI.Control.PreRenderRecursiveInternal() +61
       System.Web.UI.Control.PreRenderRecursiveInternal() +224
       System.Web.UI.Control.PreRenderRecursiveInternal() +224
       System.Web.UI.Control.PreRenderRecursiveInternal() +224
       System.Web.UI.Control.PreRenderRecursiveInternal() +224
       System.Web.UI.Control.PreRenderRecursiveInternal() +224
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3394
    
    ________________________________________
    Informazioni di versione: Versione di Microsoft .NET Framework:2.0.50727.5444; Versione di ASP.NET:2.0.50727.5420


    Grazie a tutti

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    45
    C'è nessuno che sa dirmi come risolvere la cosa?

  3. #3
    Devi considerare l'applicazione web, o meglio il pool dove gira il sito web, come un processo che vuole accedere a SQL Server (non al database, ma all'istanza SQL).
    Le credenziali che hai messo nella connection string servono per accedere ad un Database in una particolare istanza SQL, ma se non accedi all'istanza SQL è un bel casino ;-)

    Devi fare questo:
    Guarda l'utente con cui gira l'ApplicationPool:
    Gestione IIS -> Pool di Applicazioni -> "poolCheTiInteressa" -> impostazioni avanzate -> identità

    Come vedi nell'allegato, nel mio esempio l'application pool gira come "LocalSystem"
    Benissimo, questo "utente" deve avere accesso all'istanza SQL:
    Istanza SQL -> Sicurezza -> Account di accesso.

    Ora puoi fare 2 cose:
    Aggiungere l'identità usata dai Pool
    cambiare l'identita del Pool con una che può accedere a SQl.

    In genere l'identità usata nei Pool ha accesso limitato perché appunto è un processo internet e DEVE avere accessi limitati. Quindi di solito si mantiene questa nei Pool e si aggiunge a SQL.

    Ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    45
    Ciao Gluck74, grazie per la risposta, ma ho due cose da chiederti, innanzi tutto hai scritto "nell'esempio allegato" sarò rintronato ma onestamente di esempi allegati non ne ho visti.
    Ma a parte questa sciocchezza, ho provato a controllare quanto hai scritto, ma volevo capire meglio come aggiungere l'utente LocalSystem piuttosto che ApplicationPoolIdentity ovvero, ho cercato di aggiungere questo utente in SQL, ma nell'elenco di quelli che mi propone non esiste, forse non ho capito cosa intendi.
    Grazie ancora per la disponibilità.

  5. #5
    si scusa, volevo mettere come allegato la schermata di configurazione, ma qualche cosa è andata storta e non mi ha allegato il file.

    per aggiungere l'utente, devi proprio scrivere il nome completo del domionio IIS AppPool in questa maniera:

    'IIS APPPOOL\DefaultAppPool'

    Comunque un'altra soluzione e cambiare l'utente all'application pool, come puoi vedere chiaramente in questo post.
    http://www.aspdotnet-suresh.com/2011...ion-login.html

    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.