Чтобы продолжить, на тот случай, если кто-то снова столкнется с той же проблемой, возможно, по какой-либо причине одно из ваших развертываний застряло в эмуляторе вычислений.
Что случилось со мной, так это то, что у меня была веб-роль, содержащая несколько веб-сайтов, каждый из которых был привязан к отдельному имени хоста. Скажите: localhost и test.localhost. Обычно вы получаете доступ к ним по адресу localhost: 81 и test.localhost: 81. Однако по какой-то странной причине одно развертывание перешло в странное состояние, когда оно было бы перечислено в эмуляторе вычислений, без отладки Visual Studio, было бы сказано «Role Instance уничтожен» или что-то в этом роде. Это развертывание все еще имело веб-сайты, развернутые в IIS. Затем я, не зная об этом глючном развертывании, получил доступ к URL-адресам по умолчанию, т.е. test.localhost: 81, который загружает старые файлы развертывания. (Старый) сайт работал, пока я не открыл страницу, которая фактически использовала метод RoleEnvironment.GetConfigurationSettingValue
, и только тогда я получил это исключение. Это было действительно неприятно, так как это необоснованное развертывание не дало никаких точек останова или исключений, но выглядело именно так, как сайт, над которым я работал ..
Когда я понял это, я открыл имена хостов под новым портом, и там страницы работали, как и ожидалось. Как только я удалил это ошибочное развертывание из эмулятора вычислений, веб-сайты IIS также были удалены, и, к счастью, порты теперь доступны для использования, как и ожидалось.