2012-01-14 7 views
5

Ho controllato l'URL in $ .Post, va bene. Ho anche controllato il connectiontring. Tutto funziona alla grande nell'intero sito web, inclusi i comandi $ .ajax tranne un comando $ .post. Continuo a ricevere il messaggio "Errore durante il salvataggio dei record".

codice che ho è che il pulsante Salva una finestra di dialogo jQuery:

var post = $.post(url, 
         $("#myview").serialize(), 
         function() { 
          thisDialog.dialog("close"); 
         }); 
         post.error(function (xhr, ajaxOptions, thrownError) { 
      alert("Error while saving the record"); 

Questo funziona in locale VS esempio quando corro in modalità debug, ma non viene eseguito quando schiero il sito web per IIS 7.5 . Qualcuno può dirmi quale potrebbe essere il problema? Tutte le DLL sono presenti, url è troppo bella

url è: Home/Inizia

[HttpPost] 
    public ActionResult Start(StartModel model, FormCollection collection) 
      { 
       try 
       { 
        Service.Create(model); 
        return RedirectToAction("List"); 
       } 

questo funziona in VS, ma non in IIS 7.5

ottengo il codice di errore 500

traccia Pila mostra un messaggio di errore: overflow SqlDateTime. Deve essere compreso tra 1/1/1753 12:00:00 e 12/31/9999 11:59:59 PM

sto impostando il valore di data utilizzando il controllo della data jquery. qualsiasi guida è apprezzata.

+0

come hai fatto a risolverlo finalmente ?! Ho lo stesso problema. Il mistero è che funziona su VS, o anche su un pulsante onClick estraneo (il valore di selezione data verrà passato) ma non sull'evento di modifica datepicker! – sepehr

risposta

0

Senza ulteriori informazioni Sto scattando qui al buio, ma è possibile che tu stia utilizzando un URL relativo, ad esempio /bob/fred e che il server abbia una struttura di file diversa nell'applicazione locale.

Consente supponiamo che la vostra applicazione è nella seguente struttura:

/bob/fred <- the directory you're accessing in the $.post call 
/jim/index.aspx <- the page you're calling $.post in 

E quando lo metti sul server della struttura del file, dalla radice di applicazione, è come questo:

/site/bob/fred 
/site/jim/index.aspx 

Se si esegue l'app tramite VS 2010, ciò sarebbe corretto. Tuttavia sul server richiederebbe un URL diverso.

Il prossimo passo dovrebbe essere controllare la chiamata $ .post usando Firebug - vedi se stai ricevendo un 404. Se è così, le informazioni di cui sopra dovrebbero aiutare. In caso contrario, si prega di inviare un altro codice.

+0

Prima che tu dica, apprezzo che tu abbia detto che hai controllato l'URL - ma, per favore, intendi che ti sei assicurato che non riceverai una risposta 404? – ClarkeyBoy

+0

sto usando il percorso relativo ma quello dovrebbe andare bene sto indovinando perché la finestra di dialogo mostra l'url che è anche relativo. è solo il salvataggio che causa un problema? ma tu hai un buon punto. cosa pensi che possa fare per testare – InfoLearner

+0

Scarica Firebug (per Firefox, o Dragonfly per Opera o usa gli strumenti di sviluppo integrati per Chrome) e guarda che risposta ottieni quando fai clic sul pulsante Salva. In Chrome/Opera, fai clic con il pulsante destro sulla pagina e fai clic su "Ispeziona elemento". Ora vai alla scheda Rete nella parte inferiore dello schermo. In Firefox, fare clic con il tasto destro sulla pagina e andare su "Ispeziona elemento", quindi fare clic sulla scheda Rete e aggiornare la pagina. – ClarkeyBoy

1

Hai provato a catturare la richiesta http tramite lo strumento di sviluppo del tuo navigatore? vedi la richiesta e qual è la risposta dal server?

1

Imposta la modalità CustomErrors su "off" (nel tuo web.config) e quindi esamina la risposta in firebug, dovresti vedere una bella traccia dello stack restituita dal server. Basta fare in modo che il blocco catch (che non hai pubblichi) assomiglia:

try 
{ 
// your code here 
} 
catch(Exception ex) 
{ 
throw; 
} 

(Assicurarsi che non si sta facendo due ex, perché in questo modo si perde traccia dello stack).

È possibile continuare da lì.

Come ipotesi cieca potrebbe accadere che: 1. Service.Create (modello); fallisce (forse non hai perimissioni da quella macchina per accedere a "Servizio", o 2.Potrebbe succedere che stai scrivendo troppi dati, in modo da provare ad aumentare la lunghezza maxRequest in

<configuration> 
    <system.web> 
     <httpRuntime maxRequestLength="102400" executionTimeout="1200" /> 
    </system.web> 
</configuration> 

Sarebbe utile conoscere il vostro stack trace, però.

+0

. l'errore personalizzato disattivato ha mostrato il seguente messaggio di errore: overflow SqlDateTime. Deve essere compreso tra 1/1/1753 12:00:00 e 12/31/9999 11:59:59 PM ma il problema è che funziona in VS e non in IIS. sto impostando un valore = 1/2/2011 usando il controllo del calendario jquery – InfoLearner

+0

Localmente, controlla il tuo valore datetime nel debug, potrebbe accadere che non stia passando bene, anche nella tua copia locale, ma è impostato su un valore predefinito in quel servizio.Crea una chiamata (modello) (che è ancora un grande mistero per me dal momento che non ho idea di cosa faccia, ma molto probabilmente il tuo problema è al suo interno). –

+0

Inoltre, dovresti assicurarti che javascript non venga memorizzato nella cache da alcune delle precedenti distribuzioni su quel server (svuota la cache del browser per assicurarti che abbia tutto dall'ultima implementazione). –

1

Senza modificare nulla nella configurazione corrente, potrebbe essere solo un errore nel formato della data. Invece di impostare la data come 1/2/2011 attraverso il controllo di calendario, provare a impostare come 1/2/2011 12:00:00 PM

o ripristinare datepicker DATEFORMAT (altri formati here):

.datepicker({ 
    dateFormat: 'mm/dd/yy' 
}); 
+0

che è corretto ma voglio solo passare la data, e non il tempo – InfoLearner

+1

anche il mistero è perché funziona in VS e non nel server IIS. Sono davvero confuso e non riesco a capirlo. potrebbe essere una sua impostazione MSSQL che lo richiede? può essere jQuery funziona in modo diverso in IIS? potrebbe essere qualcos'altro che rende il tempo importante – InfoLearner

+0

Hai acceso FireBug per vedere cosa viene effettivamente pubblicato? – Paul

Problemi correlati