Удаленная отладка в Visual Studio (VS2008), приложение Windows Forms

Однако здесь - моя попытка с использованием ILookup и внутренней KeyedCollection. Убедитесь, что свойство key неизменно. Cross здесь .

public class Lookup : Collection, ILookup
{
  public Lookup(Func keyForItem)
    : base((IList)new Collection(keyForItem))
  {
  }

  new Collection Items => (Collection)base.Items;

  public IEnumerable this[TKey key] => Items[key];
  public bool Contains(TKey key) => Items.Contains(key);
  IEnumerator>
    IEnumerable>.GetEnumerator() => Items.GetEnumerator();

  class Collection : KeyedCollection
  {
    Func KeyForItem { get; }      
    public Collection(Func keyForItem) => KeyForItem = keyForItem;
    protected override TKey GetKeyForItem(Grouping item) => item.Key;

    public void Add(TElement item)
    {
      var key = KeyForItem(item);
      if (Dictionary != null && Dictionary.TryGetValue(key, out var collection))
        collection.Add(item);
      else
        Add(new Grouping(key) { item });
    }

    public bool Remove(TElement item)
    {
      var key = KeyForItem(item);
      if (Dictionary != null && Dictionary.TryGetValue(key, out var collection)
        && collection.Remove(item))
      {
        if (collection.Count == 0)
          Remove(key);
        return true;
      }
      return false;
    }

  }
  class Grouping : Collection, IGrouping
  {
    public Grouping(TKey key) => Key = key;
    public TKey Key { get; }
  }
}

32
задан AnthonyWJones 1 January 2009 в 13:48
поделиться

6 ответов

Вот как это работало для меня:

Удаленный компьютер: Microsoft Virtual PC, "IHS\RDM", прикрепленный к моему корпоративному домену, входил в систему как jdoe, учетная запись администратора.

Локальный компьютер: Прикреплен к локальному домену, вошел под именем jdoe, учетная запись администратора.

1) удаленный компьютер: установите rdbgsetup.exe (из Visual Studio 2005\Disk 2\Remote Debugger\x86)

2) удаленный компьютер: RUNAS /user MYDOMAIN\jdoe /netonly msvsmon

3) Удаленный компьютер: msvsmon->Tools->permissions add user "MYDOMAIN\jdoe" (я должен делать это каждый раз при перезапуске)

4) локальный компьютер: запустить msvsmon.

5) локальный компьютер, msvsmon->Tools->permissions, добавлять типы объектов: "компьютеры", "IHS\RDM"

6) локальный компьютер, vs2005->debug->tach to process. Транспорт: По умолчанию, Qualifier: jdoe@RDM

7). Обновитесь, и вуаля; список процессов!

7
ответ дан 27 November 2019 в 21:15
поделиться

Проблема, которую я имел, состоит в том, что у меня было 2 пользователя:

mydomain\user1
mytestmachine\user1

, который не корректен (по словам Gregg Miskely) я должен был определить локального пользователя в своем компьютере разработчика, например:

mydevcomputer\debug
mytestmachine\debug

с тем же паролем и выполненный VS2008 и Отладчик с этим пользователем:

9
ответ дан 27 November 2019 в 21:15
поделиться

Gregg Miskely имеет сообщение в блоге на том, почему сервисная учетная запись должна иметь административные привилегии (при установке тот путь). Одна из точек - то, что учетная запись пользователя, в Вашем случае пользователь на Тестовой машине, должна иметь полномочия для соединения назад с другим компьютером. Это кажется на удар случая, где учетная запись mydomain\user1 имеет недостаточные полномочия соединиться с компьютером разработчика.

, Если это не помогает сообщениям в блоге Gregg просматривания, отправляя ему, почта могла бы помочь.

2
ответ дан 27 November 2019 в 21:15
поделиться

TESTCOMPUTER\user1 имеет тот же пароль как mydomain\user1?

можно также попытаться работать msvsmon.exe на целевом компьютере вместо Удаленной Отладки Сервиса. Можно использовать "Выполненный Как..." для выполнения его под различными учетными данными. После того как Вы получаете вещи, работающие с msvsmon,exe, необходимо смочь установить (или повторно включить) Удаленный Сервис Отладчика, выполняющий его под теми учетными данными.

РЕДАКТИРОВАНИЕ:

необходимо смочь использовать страницу свойств Полномочий в msvsmon.exe для установки соответствующих полномочий отладки для пользователя домена на целевой машине:

http://msdn.microsoft.com/en-us/library/ms164722.aspx

1
ответ дан 27 November 2019 в 21:15
поделиться

Итак, вы разработчик, и у одного из ваших пользователей возникло исключение, и вы хотите отладить его удаленно, не закрывая окно исключения, но они вошли в систему под другой учетной записью. Оказывается, вы можете отлаживать их приложение, но это становится непросто.

0) Вам по-прежнему нужны соответствующие локальные учетные записи как на удаленном компьютере приложения, так и на локальной машине Visual Studio, что означает добавление учетной записи на компьютер пользователя.

1) Вам необходимо использовать runas с параметром / netonly. Откройте командную строку для папки, в которой находится msvsmon, и введите

runas /user:[user] /netonly msvsmon

. Это заставит msvsmon использовать учетные данные пользователя только при доступе к сети (например, когда msvsmon подключается обратно к локальной машине VS). msvsmon расстроится, если вы вызовете его с помощью runas без использования / netonly.

1
ответ дан 27 November 2019 в 21:15
поделиться

Таким образом, я не могу отвечать без учетной записи, и я могу отвечать только на свои собственные комментарии, но моя зарегистрированная учетная запись отделена от анонимной учетной записи, из которой я отправил сообщение, поэтому это должен быть «новый ответ». Извините.

багет - когда я делал эту работу ранее сегодня, я создал локальную учетную запись как на ПК Remote Debug Monitor, так и на ПК с Visual Studio. RDM не был в домене, VS был. Обе локальные учетные записи являются администратором с учетными данными, идентичными моей учетной записи домена. Из другой учетной записи (также администратора) я вызвал runas из командной строки с повышенными правами с переключателем netonly. Вам может потребоваться указать имя пользователя, а может и не потребоваться, но поскольку все пароли должны совпадать, я не думаю, что это имеет большое значение.

Дон ' Не забудьте настроить свои разрешения в RDM, чтобы позволить учетной записи пользователя, на которой запущен VS, подключаться с правами отладки. Это довольно разборчиво в отношении того, кого он позволяет добавлять в список, поэтому, если вы сначала не создадите локальную учетную запись, вы сильно расстроитесь. И если вы запускаете RDM под другим именем учетной записи пользователя, вы должны использовать полное имя сервера при попытке подключения к удаленному компьютеру; если вы запускаете и RDM, и VS из одной и той же учетной записи, вы можете обойтись только именем компьютера.

0
ответ дан 27 November 2019 в 21:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: