Если Вы готовы сделать JavaScript обязательным, можно использовать план hashcash потребовать, например, ценности ~30 секунд клиентского вычисления для каждого запроса. (Конечно, который мог бы составить 5 минут на iPhone или 1 секунда на ботнете 30 компьютеров: значительный недостаток.)
можно также сделать очистку более трудной путем генерации страницы с (запутываемым) JavaScript или (затычкой) флэш-память.
можно также исследовать для ботов с невидимым (с помощью CSS и JavaScript) случайные загаженные ссылки.
можно обнаружить 'подобные боту' IP-адреса (уровнем и посещениями ссылок ловушки) и перенаправить их к специальному серверу (например, один с дополнительной проверкой CC такой, как 'проверено визой' - или просто один с капчой.)
, Но действительно, это - гонка вооружений.:) И один Вам, вероятно, придется в конечном счете возрасти даже вне капчей.
, Который приносит мне к: Почему бы не измениться от сначала прибывшего, модели первой подачи к лотерейной модели, где боты не имеют такого большого преимущества перед настоящими покупателями?
Похоже, ваш файл дизайнера (PageName.designer.cs) немного испорчен. Я бы попробовал удалить кнопку с вашей страницы и добавить ее снова.
Я сталкивался с этой проблемой несколько раз. Иногда имена классов в дизайнере и код не совпадают. В других случаях пространство имен не совпадает. В других случаях на странице дизайнера не создается переменная-член.
Как упоминал mdresser, регенерация файла дизайнера может решить эту проблему. Просто убедитесь, что вы сначала сохранили страницу aspx.
Если кнопка находится внутри контейнера именования, например повторителя, вы не сможете использовать ее таким образом. Вместо этого вам нужно сделать что-то вроде этого:
Button myButton = (Button)Container.FindControl("myButton");
myButton.Text = "bye";