Первое, что нужно уточнить, это то, что Site.State
- это свойство для получения состояния протокола HTTP, и по этой причине я предполагаю, что сайт, который вызывает это исключение, вероятно, НЕ является сайтом HTTP.
Если вы хотите получить состояние FTP, вам нужно:
int ftpState = Site.GetChildElement("ftpServer")["state"]
Вы можете проверить, является ли сайт HTTP или нет, проверив Site.Bindings и найдя свойство Protocol, если у него нет HTTP или HTTPS, вы получите исключение, выше которого вы могли бы спокойно проигнорировать.
Для получения дополнительной информации: Настройки FTP IIS.net / Пример кода