HTML.it è il sito italiano del web publishing

Aiuto per il funzionamento file .ashx



scegli un altro forum
    Indietro   Ricarica   Avanti Invia una risposta

Autore
Discussione     
pasqualissimo
Utente di HTML.it



Registrato il: Oct 2010

Provenienza:

Messaggi: 252


ICQ:

MSN:

Skype:


aiuto per il funzionamento file .ashx,
salve, ho scaricato un template, e lho importato in vs2010...
praticamente è tutto pronto, ma ho un problema con il file .ashx, che non ho mai usato!!!!

nella pagina dei contatti, c'è un form per l'invio di mail, al click del pulstante "send", si avvia una funzione javascript

codice:
submitFu: function () {
					        _.validateFu()
					        if (!_.form.has('.' + _.invalidCl).length)
					            $.ajax({
					                type: "POST",
					                url:bin/MailHandler.ashx,
					                data: {
					                    name: $('.name input', _.form).val() || 'nope',
					                    email: $('.email input', _.form).val() || 'nope',
					                    phone: $('.phone input', _.form).val() || 'nope',
					                    fax: $('.fax input', _.form).val() || 'nope',
					                    state: $('.state input', _.form).val() || 'nope',
					                    message: $('.message textarea', _.form).val() || 'nope',
					                    owner_email: _.ownerEmail,
					                    stripHTML: _.stripHTML
					                },
					                success: function () {
					                    _.showFu()
					                },
					                error: function (err) {
					                    var a = err;
					                }
					            })


il file .ashx è questo:
codice:
<%@ WebHandler Language="C#" Class="Handler" Debug="true" %>

using System;
using System.Web;
using System.Net.Mail;
using System.Text.RegularExpressions;

public class Handler : IHttpHandler {
    public void ProcessRequest (HttpContext context) {
		SmtpClient mailClient = new SmtpClient(context.Request.Form.Get("smtpMailServer"));
		string owner_email = context.Request.Form.Get("owner_email");
		string subject = "A message from your site visitor " + context.Request.Form.Get("name");
		string email = context.Request.Form.Get("email");
		string messageBody = "";
	
		messageBody += "<p>Visitor: " + context.Request.Form.Get("name") + "</p>\n";
		messageBody += "<br>\n";
		messageBody += "<p>Email Address: " + context.Request.Form.Get("email") + "</p>\n";
		messageBody += "<br>\n";
		messageBody += "<p>Phone Number: " + context.Request.Form.Get("phone") + "</p>\n";
		messageBody += "<br>\n";
		messageBody += "<p>Message: " + context.Request.Form.Get("message") + "</p>\n";
	
			
		MailMessage message = new MailMessage();
	
		try{
			message.From = new MailAddress(email.ToString());
		}catch (FormatException e) {
			context.Response.Write(e.Message);
		}
	
		message.To.Add(owner_email);
		message.Subject = subject;
		if(context.Request.Form.Get("stripHTML") == "true"){
			message.IsBodyHtml = false;
            messageBody = Regex.Replace(messageBody, "<.*?>", string.Empty);
		}else{
		  	message.IsBodyHtml = true;
		}
		message.Body = messageBody;
		
		try{
			mailClient.Send(message);
		}catch (SmtpException e) {
			context.Response.Write("mail failed");
		}
		context.Response.Write("mail sent");
	}

	public bool IsReusable {
		get	{
			return false;
		}
	}
}


però la function javascript sembra non arrivare al file .ashx....
magari si deve settare qualcosa sul web.config...
ringrazio in anticipo chiunque mi possa aiutare!!!!!

Segnala ad un moderatore | IP: Collegato | Permalink

pasqualissimo è offline Old Post 07-06-2012 23:13
Clicca qui per vedere il profilo dell'utente pasqualissimo Clicca qui per inviare all'utente pasqualissimo un messaggio privato Visualizza ulteriori messaggi scritti dall'utente pasqualissimo Aggiungi l'utente pasqualissimo alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
rsdpzed
Utente di HTML.it



Registrato il: Aug 2001

Provenienza:

Messaggi: 681


ICQ :

MSN :

Skype :


toglilo via l'ashx dalla cartella bin! (e non metterlo in un altra cartella speciale)

un consiglio, quando sei in sviluppo scrivi l'handler on_error nel global asax e in casi di errori misteriosi mettici li un breakpoint. Qualcosa in piu la scopri sempre da li.

Segnala ad un moderatore | IP: Collegato | Permalink

rsdpzed è offline Old Post 08-06-2012 08:58
Clicca qui per vedere il profilo dell'utente rsdpzed Clicca qui per inviare all'utente rsdpzed un messaggio privato Visualizza ulteriori messaggi scritti dall'utente rsdpzed Aggiungi l'utente rsdpzed alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
pasqualissimo
Utente di HTML.it



Registrato il: Oct 2010

Provenienza:

Messaggi: 252


ICQ :

MSN :

Skype :


grazie mille rsdpzed,
ora sembra tutto ok, spostando il flile in un'altra cartella....

volevo seguire il tuo consiglio riguardo la gestione degli errori nel file global.asax, ma sembra non esserci, anche cliccando su "mostra tutti i file", come posso creare il file global.asax??

la mia è una applicazione web.... come posso fare???

grazie....

Segnala ad un moderatore | IP: Collegato | Permalink

pasqualissimo è offline Old Post 08-06-2012 16:57
Clicca qui per vedere il profilo dell'utente pasqualissimo Clicca qui per inviare all'utente pasqualissimo un messaggio privato Visualizza ulteriori messaggi scritti dall'utente pasqualissimo Aggiungi l'utente pasqualissimo alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
rsdpzed
Utente di HTML.it



Registrato il: Aug 2001

Provenienza:

Messaggi: 681


ICQ :

MSN :

Skype :


clicca con il destro sul progetto e scegli aggiungi elemento->global.asax

se dentro non c'è gia ci metti:

codice:
protected void Application_Error()
{
}


di li si passa tutte le volte che c'è un errore http o un eccezione non gestita. mettendo un breakpoint sulla graffa aperta, da finestra di controllo mentre sei in debug, puoi ispezionare l'oggetto HttpContext, tra cui HttpContext.Current.Server.GetLastError().

P.S.
ho fatto una prova per togliermi un dubbio.
questo problema non l'avresti scoperto nemmeno cosi. la richiesta viene bloccata sul nascere dal server prima di essere processata da asp.net.
Un ulteriore strumento di debug e che ti sarebbe stato utile è firebug e la sua scheda NET. Infatti da li avresti visto che la risposta è un http 403 (accesso negato)

In ogni caso la parsimonia non è mai troppa: controlla gli errori a tutti i livelli compreso in globa asax e usa firebug

Segnala ad un moderatore | IP: Collegato | Permalink

rsdpzed è offline Old Post 08-06-2012 17:42
Clicca qui per vedere il profilo dell'utente rsdpzed Clicca qui per inviare all'utente rsdpzed un messaggio privato Visualizza ulteriori messaggi scritti dall'utente rsdpzed Aggiungi l'utente rsdpzed alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
pasqualissimo
Utente di HTML.it



Registrato il: Oct 2010

Provenienza:

Messaggi: 252


ICQ :

MSN :

Skype :


grazie rsdpzed....

ora sembra tutto ok!!!!!

tra firebugs e global.asax, gli errori avranno vita breve

Segnala ad un moderatore | IP: Collegato | Permalink

pasqualissimo è offline Old Post 08-06-2012 18:43
Clicca qui per vedere il profilo dell'utente pasqualissimo Clicca qui per inviare all'utente pasqualissimo un messaggio privato Visualizza ulteriori messaggi scritti dall'utente pasqualissimo Aggiungi l'utente pasqualissimo alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
Tutte le ore sono con fuso orario CET. Ora sono le 07:12.     

    Ultima discussione   Prossima discussione Invia una risposta
Versione per la stampa | Invia il thread via email | Ricevi aggiornamenti sul thread | Scarica il thread
 

Cerchi un argomento specifico e hai fretta? Usa il motore di ricerca