gracias zacktagnan,
pero he descuvierto cuál es el problema. Resulta que en ASP tradicional los tipos de variables son polivalentes (ahora no sé cómo se dice técnicamente), es decir que tanto te pillan valores numéricos como caracteres.
En .NET veo que todo hay que definirlo claramente, y yo esta variable de sesión, que arraca del global.asax con como
luego al aceptar un warring le doy valor 1. Claro luego cuando hago la comparación (para ver si ha aceptado el warring) con "", pues me da error ya que ahora tiene definida esa variable como numérica. La solución es o darle valores alfanuméricos o definir en el globa.asax con valor 0, por ejemplo y comparar luego siempre con valores numéricos.
Bueno es cuetión de irse acostumbrand a las característiecas del lenguaje, gracias por tu ayuda y espero que me eches una mano en más problemillas que me vayan surgiendo.
Un saludo