Я бы добавил Setting файл (ссылку на работу с файлом параметров Вам постом выше оставили), в который добавил бы необходимые параметры для запуска приложения. При начале работы приложения брал бы данные от туда. Когда эти параметры будут меняться в процессе работы, их сохранять в этом файле. И каким бы образом приложение ни закрылось, текущее состояние будет сохранено в сеттинге.
Ну лучше это делать вне события и сохранить в параметрах. На пример входные данные как только вы их получили. Или там просто в файл.
Есть конечно AppDomain.ProcessExit, но он допустим не вызовется при убийстве программы через таск менеджер или Ctrl+C /break.
Тогда надо подписываться и на Console.CancelKeyPress.
Адрес, который показывает Вебмастер, точно не тот, который генерируется в ссылке. Слеши не пропадают. Никогда.
Он сформировался где-то в другом месте, и вот это место нужно искать.
У вебмастера должен быть источник на какой странице найдена ссылка.
И не используйте такую конструкцию, создайте класс генерации ссылке где будет метод создания ссылок на page