App Android - Connessione Database

di il
6 risposte

App Android - Connessione Database

Ciao,

nell'impostare da codice una connessione a Sql Server mediante il Tool Xamarin in C#, il Debug si ferma sull'istruzione:

conn.Open();

Eccezione: "Timeout exceded"
"Errore di configurazione di Sistema'.

Già che la procedura utilizzata per la suddetta connessione funziona per altre applicazioni (tipo WebForm, WinForm) forse su Android manca qualche configurazione....

6 Risposte

  • Re: App Android - Connessione Database

    Non puoi collegarti DIRETTAMENTE ad un DBMS da un dispositivo mobile.

    E' SBAGLIATO concettualmente: il dispositivo mobile NON HA una connessione affidabile (si puo' disconnettere per un'infinita' di motivi, non ultimo perche' l'app va in background), ne' efficiente, ne un IP univocamente determinato.

    Per collegarti al DBMS DEVI utilizzare un web service, in genere di tipo RESTful, ed utilizzare il protocollo HTTP/HTTPS. Il protocollo E' GIA' PENSATO per non avere problemi di disconnessione nei periodi di non utilizzo.

    E' OVVIO che QUALUNQUE applicazione ha dei problemi se una connessione viene chiusa mentre c'e' un trasferimento di dati!
    Ma se non c'e' trasferimento di dati, NON C'E' motivo di mantenere la connessione attiva: sopprattutto nei dispositivi mobili in cui la batteria ha una capacita' di ORE e qualunque utilizzo inutile ne riduce ulteriormente la capacita'.
  • Re: App Android - Connessione Database

    Se posti la parte di codice precedente alla riga dove ti da' errore, magari si riesce a capire il motivo dell'anomalia
  • Re: App Android - Connessione Database

    Utilizzando un Web Service di tipo SOAP - WSDL per connettere la App al database SQL Server mi da la stessa eccezione:

    System.Net.WebException:<Timeout exceded getting exception detail>

    Lo stesso Web Server provato su altre applicazioni (es. ASP.NET) funziona correttamente.
  • Re: App Android - Connessione Database

    Il codice
    Non c'abbiamo la sfera maggica
  • Re: App Android - Connessione Database

    Il codice che richiama la funzione del Web Service è questo:

    TextView test = (TextView)FindViewById(Resource.Id.textView1);

    WebService1 myservice = new WebService1();

    string result = myservice.Func();

    test.Text = result;
    ---------------------

    L'errore viene dato in Reference.cs sulla riga "object[] results = this.Invoke("Func", new object[0])";

    /// <remarks/>
    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/Fun", RequestNamespace="http://tempuri.org", ResponseNamespace="http://tempuri.org", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    public string Func() {
    object[] results = this.Invoke("Func", new object[0]); <---
    return ((string)(results[0]));
    }
  • Re: App Android - Connessione Database

    Mi da questo errore:

    XA0105: The $(TargetFrameworkVersion) for System.EnterpriseServices (v10.0)
    is greater than the $(TargetFrameworkVersion) for your project (v9.0).
    You need to increase the $(TargetFrameworkVersion) for your project.
Devi accedere o registrarti per scrivere nel forum
6 risposte