Первая находка корректная папка версии.NET. Используйте DirectorySearch/FileSearch для выполнения поиска.
Использование вышеупомянутый путь, чтобы назвать aspnet_regiis.exe и установить версию для веб-приложения от пользовательского действия.
aspnet_regiis.exe -s W3SVC/1/ROOT/SampleApp1
Похоже на плохую идею, но все равно попробуйте что-нибудь вроде этого:
bool exceptionthrown = false;
while (!exceptionthrown)
{
try
{
// Do magic here
}
catch (Exception)
{
exceptionthrown = true;
throw;
}
}
Это действительно зависит от того, что вы делаете, и от типа создаваемого исключения. Многие исключения нельзя исправить, просто попробовав еще раз с теми же входами / данными, и, таким образом, цикл будет просто продолжать генерировать исключение до бесконечности.
Вместо этого вы должны проверить соответствующие исключения, а затем обработать их в соответствующий способ для этих конкретных исключений.
Мне это кажется плохим дизайном. Общее правило: исключения не должны использоваться для управления потоком. Есть ряд причин для этого; а именно, обычно есть лучшие / более надежные методы, которые можно использовать для проверки вещей до того, как будет выбрано исключение, а также это снижает эффективность.
Тем не менее, просто для аргументации, вы можете сделать что-то вроде следующего:
while (true)
{
try
{
// do stuff here
}
catch (MyException)
{
continue;
}
// all is good
break;
}
Опять же - это не рекомендуемый способ. Я был бы рад предложить что-нибудь получше, если бы вы могли предоставить немного больше контекста / примеров /
Почему бы не вызвать функцию, которая на самом деле выполняет цикл, и иметь после нее ловушку, которая вызовет функцию снова.
private void loop() {
for(...) {
}
}
другой метод:
try {
loop();
} catch(Exception e) {
loop();
}
Что-то вроде:
bool done = false;
while( ! done )
{
try
{
DoSomething();
done = true;
} catch(Exception ex)
{
HandleException(ex);
}
}
Как сказал Нолдорин, пахнет плохим дизайном. Вы используете исключения для управления потоком программы.