none
Eccezione randonica nella open connessione Access RRS feed

  • Domanda

  • Ho un sito realizzato in ASP.NET. Hosting Aruba, piattaforma WIN. Il
    code behind è C#. Se accedo ad una funzione che interroga un db Access
    (2000), ok.
    Se provo a rieseguire la stessa funzione statica (o altre collegate)
    appare l'eccezione come da oggetto. In particolare questa si solleva
    nella open della connessione:

    OleDbConnection cn = default(OleDbConnection);
    cn = new OleDbConnection(cnString);
    cn.Open();       <------------------------

    La cosa bella è che questo tipo di errore si presenta in più punti del
    progetto.
    Nel web config, l'authentication mode è su Form il quale interroga un
    db (sempre access) di servizio e pilota la navigazione.
    Non riesco a venirne a capo. Potreste dirmi dove sbaglio?
    ciao
    venerdì 23 luglio 2010 22:09

Risposte

  • Allora prova cosi:

    aggiungi la stringa di connessione nel web.config:

    <add name="MyAccessDB" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;
    Data Source=|DataDirectory|\MyAccessDB.mdb;User Id=admin;Password=XXXX" providerName="System.Data.OleDb" />
    Metti il file Acces nella directory APP_DATA e da codice richiama la string di connessione del web.config

    Ciao


    LCO (congiuluc)
    mercoledì 4 agosto 2010 14:50
    Moderatore
  • Anche io ho un sito su Aruba e faceno come ti ho spiegato nel post precedente funziona.

    Fammi sapere

    Ciao


    LCO (congiuluc)
    • Contrassegnato come risposta cosmopsis lunedì 17 gennaio 2011 20:01
    sabato 7 agosto 2010 17:13
    Moderatore

Tutte le risposte

  • Ciao, potresti controllare l'accesso al database. Magari la stringa di connessione non è in formatto giusto. Guarda qui per esempi.

    Saluti.


    Questo contenuto è distribuito “as is” e non implica alcuna responsabilità da parte di Microsoft. L'azienda offre questo servizio gratuitamente, allo scopo di aiutare gli utenti e farli aumentare la conoscenza sui prodotti e le tecnologie Microsoft.
    lunedì 2 agosto 2010 09:27
  • Grazie per la risposta. Quasi quasi non ci speravo più ...

    La mia stringa di connessione è:

     

    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\SOR\mdb-database\mio.mdb;Persist Security Info=False;Jet OLEDB:Database Password=12345;

    che è similarea quella suggerita dal sito.

    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:Database Password=MyDbPassword;

     

    il problema mi rimane. Ho visto in giro che può essere un problema di provilegi di lettura e scrittura ma ho abilitato tutte le cartelle in tal senso...

    che può essere?

    ciao

    martedì 3 agosto 2010 12:02
  • Ciao, non so se ho capito bene. La tua database sta su aruba o in locale?

    Saluti.


    Questo contenuto è distribuito “as is” e non implica alcuna responsabilità da parte di Microsoft. L'azienda offre questo servizio gratuitamente, allo scopo di aiutare gli utenti e farli aumentare la conoscenza sui prodotti e le tecnologie Microsoft.
    martedì 3 agosto 2010 12:44
  • Modifico la stringa di connessione quando lo pubblico online. Il problema si mostra sia online che in locale. Grazie per l'aiuto

    martedì 3 agosto 2010 20:39
  • Ciao, potresti postare il testo completto dell'eccezione?

    Prova a crearti un'applicazione di test usando questa guida.

    Altri esempi trovi qui e qui.

    Saluti.


    Questo contenuto è distribuito “as is” e non implica alcuna responsabilità da parte di Microsoft. L'azienda offre questo servizio gratuitamente, allo scopo di aiutare gli utenti e farli aumentare la conoscenza sui prodotti e le tecnologie Microsoft.
    • Proposto come risposta roberto1965 mercoledì 4 agosto 2010 07:38
    • Modificato Mila Daniel Ovidiu mercoledì 4 agosto 2010 07:56 aggiunto guida e esempi
    mercoledì 4 agosto 2010 07:24
  • Ti posto il testo completo. Intanto do una scorsa ai link suggeritomi.

    -----------------------------------------

    Unspecified error
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.Data.OleDb.OleDbException: Unspecified error

    Source Error:

    Line 1148:        OleDbConnection cn = default(OleDbConnection);
    Line 1149:        cn = new OleDbConnection(cnString);
    Line 1150:        cn.Open();
    Line 1151:       



    Source File: d:\inetpub\webs\sito\App_Code\Sorgente.cs    Line: 1150

    Stack Trace:

    [OleDbException (0x80004005): Unspecified error]
       System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) +969373
       System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) +86
       System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) +29
       System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +4863644
       System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +117
       System.Data.OleDb.OleDbConnection.Open() +40
       classeStatica.Funzione(Int64 x, String al, String dal, Int32 n, Int32 pers) in d:\inetpub\webs\sito\App_Code\Sorgente.cs:1150
       classeStatica.AltraFunzione(Int64 x, String d1, String d2) in d:\inetpub\webs\sito\App_Code\Sorgente.cs:449
       altraClasseStatica.Funzione() in d:\inetpub\webs\sito\altroSorgente.aspx.cs:489
       WebForm.Page_Load(Object sender, EventArgs e) in d:\inetpub\webs\Sito\altroSorgente.aspx.cs:53
       System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
       System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
       System.Web.UI.Control.OnLoad(EventArgs e) +99
       System.Web.UI.Control.LoadRecursive() +50
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627
    -----------------------------------------

    mercoledì 4 agosto 2010 12:00
  • Guarda qui: http://support.microsoft.com/kb/825738

    E prova a mettere nel web.config in locale

    <identity impersonate="true" />
    
    
    Mentre nel web.config su aruba

     <identity impersonate="true" userName="XXXXXX@aruba.it" password="XXXXXXX" />
    
    Ciao

     


    LCO (congiuluc)
    mercoledì 4 agosto 2010 13:09
    Moderatore
  • Grazie per la risposta.

    No. Ho provato ma nulla da fare.

    Pubblico anche il web.config:

    -------------------------------------------------

    <?xml version="1.0"?>
    <!--
        Nota: come alternativa alla modifica manuale del file, è possibile utilizzare lo
        strumento di amministrazione Web per configurare le impostazioni dell'applicazione. Utilizzare il comando
        Configurazione ASP.NET del menu Sito Web di Visual Studio.
        Un elenco completo di impostazioni e commenti è disponibile nel file
        machine.config.comments che si trova in genere in
        \Windows\Microsoft.Net\Framework\v2.x\Config
    -->
    <configuration>
        <configSections>
            <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
                <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
                    <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
                    <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
                        <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
                        <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
                        <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
                        <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
                    </sectionGroup>
                </sectionGroup>
            </sectionGroup>
        </configSections>
        <appSettings>
        </appSettings>
        <connectionStrings>
        </connectionStrings>
        <system.web>
            <!--
                Impostare compilation debug="true" per inserire i
                simboli di debug nella pagina compilata. Poiché tale
                operazione ha effetto sulle prestazioni, impostare questo valore su true
                solo durante lo sviluppo.
            -->
      <webServices>
                <protocols>
                    <add name="HttpGet"/>
                    <add name="HttpPost"/>
                </protocols>
            </webServices>
            <compilation debug="true">
                <assemblies>
                    <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                    <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                    <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                    <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                    <add assembly="System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                    <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
                    <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/></assemblies>
            </compilation>
            <!--
                La sezione <authentication> consente di configurare
                la modalità di autenticazione della sicurezza utilizzata da
                ASP.NET per identificare un utente in ingresso.
            -->

            <identity impersonate="true" userName="nontelodico@aruba.it" password="123456789" />

            <authentication mode="Forms">
                <forms name="mioCookie" protection="All" loginUrl="~/areaRiservata.aspx"/>
            </authentication>
            <authorization>
                <deny users="?"/>
            </authorization>

           
            <customErrors mode="Off"/>
            <!--
                La sezione <customErrors> consente di configurare
                l'operazione da eseguire in caso di errore non gestito
                durante l'esecuzione di una richiesta. In particolare,
                consente agli sviluppatori di configurare le pagine di errore HTML
                in modo che vengano visualizzate al posto dell'analisi dello stack dell'errore.

            <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
                <error statusCode="403" redirect="NoAccess.htm" />
                <error statusCode="404" redirect="FileNotFound.htm" />
            </customErrors>
            -->
            <pages>
                <controls>
                    <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                    <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                </controls>
            </pages>
            <httpHandlers>
                <remove verb="*" path="*.asmx"/>
                <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
            </httpHandlers>
            <httpModules>
                <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            </httpModules>
        </system.web>
        <!--Protezione di una specifica directory-->
        <!--<location path="Utenti">
        <system.web>
          <authorization>
            <deny users="?"/>
          </authorization>
        </system.web>
      </location>-->
        <system.codedom>
            <compilers>
                <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
                    <providerOption name="CompilerVersion" value="v3.5"/>
                    <providerOption name="WarnAsError" value="false"/>
                </compiler>
                <!--<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
                    <providerOption name="CompilerVersion" value="v3.5"/>
                    <providerOption name="OptionInfer" value="true"/>
                    <providerOption name="WarnAsError" value="false"/>
                </compiler>-->
            </compilers>
        </system.codedom>
        <!--
            La sezione system.webServer è richiesta per eseguire ASP.NET AJAX in Internet
            Information Services 7.0. Non è necessaria per la versione precedente di IIS.
        -->
        <system.webServer>
            <validation validateIntegratedModeConfiguration="false"/>
            <modules>
                <remove name="ScriptModule"/>
                <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            </modules>
            <handlers>
                <remove name="WebServiceHandlerFactory-Integrated"/>
                <remove name="ScriptHandlerFactory"/>
                <remove name="ScriptHandlerFactoryAppServices"/>
                <remove name="ScriptResource"/>
                <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            </handlers>
        </system.webServer>
        <runtime>
            <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
                <dependentAssembly>
                    <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
                    <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
                </dependentAssembly>
                <dependentAssembly>
                    <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
                    <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
                </dependentAssembly>
            </assemblyBinding>
        </runtime>
    </configuration>
    ------------------------------------------------

    mdb-database è in lettura/scrittura; idem per la cartella App_Code

    Non capisco...  :(

    mercoledì 4 agosto 2010 14:28
  • Allora prova cosi:

    aggiungi la stringa di connessione nel web.config:

    <add name="MyAccessDB" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;
    Data Source=|DataDirectory|\MyAccessDB.mdb;User Id=admin;Password=XXXX" providerName="System.Data.OleDb" />
    Metti il file Acces nella directory APP_DATA e da codice richiama la string di connessione del web.config

    Ciao


    LCO (congiuluc)
    mercoledì 4 agosto 2010 14:50
    Moderatore
  • Prova a dare i permessi di scrittura nella folder in cui si trova il
    db.
     
    Fammi sapere
    Ciauz
    ..u
     
    --
    Ugo Lattanzi
    ..NET Senior developer & Consultant | Microsoft MVP
    http://imperugo.tostring.it
    http://twitter.com/imperugo
     
     
     
    mercoledì 4 agosto 2010 14:52
  • Ho problemi con il mio computer di sviluppo e l'ufficio è chiuso. Spero che possiate darmi una mano nei anche prossimi giorni... scusate e a presto

    sabato 7 agosto 2010 08:33
  • Anche io ho un sito su Aruba e faceno come ti ho spiegato nel post precedente funziona.

    Fammi sapere

    Ciao


    LCO (congiuluc)
    • Contrassegnato come risposta cosmopsis lunedì 17 gennaio 2011 20:01
    sabato 7 agosto 2010 17:13
    Moderatore
  • Susa per il leggerissssssimo ritardo. Ti volevo solo ringraziare per le risposte.

    ciao

    lunedì 17 gennaio 2011 20:03
  • Grazie per il riscontro ;-)

    Questo contenuto è distribuito “as is” e non implica alcuna responsabilità da parte di Microsoft. L'azienda offre questo servizio gratuitamente, allo scopo di aiutare gli utenti e farli aumentare la conoscenza sui prodotti e le tecnologie Microsoft.

    Seguici su Twitter e Facebook

    lunedì 17 gennaio 2011 21:26