sinceramente così su due piedi non mi sembra ci sia un errore evidente nel tuo codice, dovresti capire se e come ti arrivano le informazioni nella richiesta, magari potresti loggare su disco la request completa.
per loggare la richiesta ci sono diversi metodi, il metodo più semplice è:
Request.SaveAs(@"C:\temp\request.txt", true);
altrimenti ci sono helper per farti restituire una stringa completa, vedi: http://stackoverflow.com/a/9630999/1082342
...un'altra prova rapida potrebbe essere quella di cambiare le Request.Form["..."] in semplici Request["..."] la differenza è che quest'ultimo legge da diversi container facendo il fallback, partendo da .QueryString, poi .Form, poi .Cookies e in ultimo .ServerVariables, vedi codice sorgente:
public string this[string key]
{
get
{
string item = this.QueryString[key];
if (item != null)
{
return item;
}
item = this.Form[key];
if (item != null)
{
return item;
}
HttpCookie httpCookie = this.Cookies[key];
if (httpCookie != null)
{
return httpCookie.Value;
}
item = this.ServerVariables[key];
if (item != null)
{
return item;
}
return null;
}
}
in sostanza il Request["..."] cerca l'elemento non solo dei dati in post, ma anche sulla querystring, perchè forse non te li inviano nel body delle richiesta ma direttamente in query string.
Michael Denny | Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic