2012-01-14 15 views
5

He comprobado la URL en $ .Post, está bien. También he comprobado la conexión de la cadena. Todo funciona muy bien en todo el sitio web, incluidos los comandos $ .ajax, excepto un comando $ .post. Sigo recibiendo mensaje de "error al guardar el registro".

código que tengo es que el botón Guardar del cuadro de diálogo jQuery:

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

Esto funciona en el local de VS ejemplo cuando corro en modo de depuración, pero no se ejecuta cuando implementar el sitio web de IIS 7.5 . ¿Puede alguien guiarme por lo que puede ser el problema? Todos los archivos DLL están presentes, url está muy bien también

URL es: Inicio/Start

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

esto funciona en VS, pero no en IIS 7.5

consigo el código de error 500

Seguimiento de la pila muestra un mensaje de error: SqlDateTime overflow. Debe estar entre 1/1/1753 12:00:00 AM y 12/31/9999 11:59:59 PM

Estoy estableciendo el valor de la fecha usando el control de fecha jquery. cualquier orientación es apreciada.

+0

¿Cómo resolvieron finalmente ?! Tengo el mismo problema. El misterio es que funciona en VS, o incluso más extraño en el botón Click (se pasará el valor del selector de fecha) pero no en el evento de cambio de datepicker. – sepehr

Respuesta

0

Sin más información Estoy haciendo una fuga en este sentido, pero puede ser que estés usando una URL relativa, por ejemplo /bob/fred, y el servidor tiene una estructura de archivos diferente a tu aplicación local.

vamos a suponer que su aplicación está en la siguiente estructura:

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

Y cuando lo pones en el servidor de la estructura de archivos, desde la raíz de la aplicación, es la siguiente:

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

Al ejecutar la aplicación a través de VS 2010, esto sería correcto. Sin embargo, en el servidor requeriría una URL diferente.

El siguiente paso debería ser comprobar la llamada $ .post usando Firebug: vea si obtiene un 404. De ser así, la información anterior debería ayudar. De lo contrario, publique un código más.

+0

Antes de decir, agradezco que diga que ha revisado la URL, pero al marcarla, ¿quiere decir que se ha asegurado de que no obtenga una respuesta 404? – ClarkeyBoy

+0

estoy usando ruta relativa, pero eso debería estar bien, estoy adivinando porque el cuadro de diálogo muestra url que también es relativo. es solo el save que causa un problema? pero tienes un buen punto. ¿Qué crees que puedo hacer para probar – InfoLearner

+0

Descarga Firebug (para Firefox o Dragonfly for Opera o usa las herramientas de desarrollo integradas para Chrome) y mira qué respuesta recibes cuando haces clic en el botón guardar. En Chrome/Opera, haga clic con el botón derecho en la página y haga clic en "Inspeccionar elemento". Ahora vaya a la pestaña Red en la parte inferior de la pantalla. En Firefox, haga clic con el botón derecho en la página y vaya a 'Inspeccionar elemento', ahora haga clic en la pestaña Red y actualice la página. – ClarkeyBoy

1

¿Ha intentado capturar la solicitud http a través de la herramienta de desarrollo de su navegador? ¿ves la solicitud y cuál es la respuesta del servidor?

1

Establezca el modo customErrors en "off" (en su web.config) y luego investigue la respuesta en firebug, debería ver un buen seguimiento de pila devuelto por el servidor. Sólo asegúrese de que su bloque catch (que usted no publicar) se parece a:

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

(Asegúrese de que usted no está haciendo tiro ex, porque de esa manera se perderá seguimiento de la pila).

Puede continuar desde allí.

Como una conjetura ciega podría suceder que: 1. Service.Create (modelo); falla (quizás usted no tenga las perimisiones de esa máquina para acceder a "Servicio", o 2.Puede ocurrir que envías demasiados datos, así que trate de aumentar la longitud maxRequest en

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

Sería útil saber el seguimiento de la pila, sin embargo.

+0

gran respuesta. el error personalizado no mostró el siguiente mensaje de error: SqlDateTime overflow. Debe estar entre 1/1/1753 12:00:00 AM y 12/31/9999 11:59:59 PM pero el problema es que funciona en VS y no en IIS. estoy estableciendo un valor = 1/2/2011 usando el control de calendario de jquery – InfoLearner

+0

Localmente, verifique el valor de su fecha y hora en la depuración, podría suceder que no esté pasando bien, en su copia local, también, pero está configurado en algún valor predeterminado en ese Servicio.Crear llamada (modelo) (que todavía es un gran misterio para mí, ya que no tengo idea de lo que hace, pero lo más probable es que su problema esté dentro). –

+0

Además, debe asegurarse de que javascript no esté en la memoria caché de algunas de sus implementaciones previas en ese servidor (borre la caché del navegador para asegurarse de que tiene todo desde la última implementación). –

1

Sin cambiar nada en su configuración actual, puede ser un error en el formato de fecha. En lugar de establecer la fecha como 1/2/2011 a través del control de calendario, intente configurar como 1/2/2011 12:00:00 PM

o restablecer datepicker DateFormat (otros formatos): here

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

eso es correcto, pero solo quiero pasar la fecha, y no el tiempo – InfoLearner

+1

, también el misterio es por qué funciona en VS y no en el servidor IIS. Estoy realmente confundido y no puedo entenderlo. puede ser su configuración MSSQL que lo requiere? puede ser jquery funciona de manera diferente en IIS? puede ser otra cosa que hace que el tiempo sea importante – InfoLearner

+0

¿Ha FireBug'd para ver lo que se está publicando? – Paul

Cuestiones relacionadas