Имеется Windows Server 2003 и выше, очень хочется на своей машине работать в Студии, но когда хочется запустить или отладить оно запускалось в контексте Windows Server'а.
В какую сторону копать, т.к. кажется что можно (в Unit Test Framework'e я нечто подобное видел).
Или только Attach to process?
19.10.08 15:24: Перенесено модератором из '.NET' — AndrewVK
Здравствуйте, Norex, Вы писали:
N>Имеется Windows Server 2003 и выше, очень хочется на своей машине работать в Студии, но когда хочется запустить или отладить оно запускалось в контексте Windows Server'а.
N>В какую сторону копать, т.к. кажется что можно (в Unit Test Framework'e я нечто подобное видел). N>Или только Attach to process?
А можно встречный вопрос, что значит "оно запускалось в контексте Windows Server'а."? Кто или что это "оно" и что в итоге вы хотите получить? Сервер2003 — это машина, которая Ваша? или может, вы имеете ввиду remote debugging?
Здравствуйте, zhech, Вы писали:
Z>А можно встречный вопрос, что значит "оно запускалось в контексте Windows Server'а."? Кто или что это "оно" и что в итоге вы хотите получить? Сервер2003 — это машина, которая Ваша? или может, вы имеете ввиду remote debugging?
Да, сервера мои.
Где подкрутить в Студии, что бы при "Run project" оно автоматически передавало собраное на удалённый сервер и там запускало.
Часто использовал Remote Debugging, но уж сильно трудоёмко "build-copy-run-wait-attach". Оч. хочется что бы Студия автоматически делала за меня часть "copy-run-wait-attach".
Здравствуйте, Norex, Вы писали:
N>Здравствуйте, zhech, Вы писали:
Z>>А можно встречный вопрос, что значит "оно запускалось в контексте Windows Server'а."? Кто или что это "оно" и что в итоге вы хотите получить? Сервер2003 — это машина, которая Ваша? или может, вы имеете ввиду remote debugging?
N>Да, сервера мои. N>Где подкрутить в Студии, что бы при "Run project" оно автоматически передавало собраное на удалённый сервер и там запускало.
N>Часто использовал Remote Debugging, но уж сильно трудоёмко "build-copy-run-wait-attach". Оч. хочется что бы Студия автоматически делала за меня часть "copy-run-wait-attach".
А.. Интересно Если честно, я такого не встречал.. разве, что в CVS делаются скрипты, которые автоматом собирают все и запускают.. хз, можно самому подобное сделать и повесить в студии на OnPostBuildAction) Звыняйте, что не могу помоч
HL>Поставить виртуальную машину не вариант?
Как вариант (в данный момент ставится. Спасибо аппаратной виртуализации. ), но не хотелось бы на виртуальную машину ставить Студию и всё необходимое.
Очень хочется только один модуль отлаживать в контексте сервера.
Здравствуйте, Norex, Вы писали:
N>Очень хочется только один модуль отлаживать в контексте сервера.
VMWare Workstation умеет интегрироваться в студию. При этом можно указать на какой локальной (поработать так с VMWare Server Console не получится) виртуальной машине запускаться. Проверял, работает.
Здравствуйте, SiAVoL, Вы писали:
SAV>VMWare Workstation умеет интегрироваться в студию. При этом можно указать на какой локальной (поработать так с VMWare Server Console не получится) виртуальной машине запускаться. Проверял, работает.
Здравствуйте, Norex, Вы писали:
N>Где подкрутить в Студии, что бы при "Run project" оно автоматически передавало собраное на удалённый сервер и там запускало. N>Часто использовал Remote Debugging, но уж сильно трудоёмко "build-copy-run-wait-attach". Оч. хочется что бы Студия автоматически делала за меня часть "copy-run-wait-attach".
странно, я настраивал Remote Debugging вот по этой статье
Здравствуйте, Norex, Вы писали:
N>Имеется Windows Server 2003 и выше, очень хочется на своей машине работать в Студии, но когда хочется запустить или отладить оно запускалось в контексте Windows Server'а.
1) На сервере запускаем тулзень для удаленной отладки.
2) Расшариваем папку, в которую собираются файлики проекта.
3) В свойствах проекта выставляем Use remote machine и указываем имя рабочей станции.
4) Там же ставим Start external program и пишем имя файла, но не локального, а сетевой путь. Например, \\workstation\sharename\MyProject.exe.
5) Стартуем и убеждаемся. что отладчик работает, но прога валится с exception.
6) Ищем в инете как настроить безопасность в .NET, шобы мона было запускать .NET приложения, расположенные в локальной сетке и настраиваем сервак.
Фсё работает...
В человечишке все должно быть прекрасненьким: и одёжка, и душенка, и мордочка, и мыслишки.
Здравствуйте, Norex, Вы писали:
N>Да, сервера мои. N>Где подкрутить в Студии, что бы при "Run project" оно автоматически передавало собраное на удалённый сервер и там запускало.
N>Часто использовал Remote Debugging, но уж сильно трудоёмко "build-copy-run-wait-attach". Оч. хочется что бы Студия автоматически делала за меня часть "copy-run-wait-attach".
Такое элементарно делается с помощью студийных макросов (да-да, если вы не в курсе, студия тоже поддерживает VBA).
Конкретно твоя задача решается примерно так:
1. Настраивается билд, чтобы аутпут закидывался "куда следует" (можно сделать несколько билд-конфигураций для оперативного переключения между местами, куда надо складывать бинарники)
2. Пишется скрипт примерно следующего содержания:
Sub BuildAndAttachTo()
DTE.ExecuteCommand("Build.BuildSolution")
Try
Dim dbg2 As EnvDTE80.Debugger2 = DTE.Debugger
Dim trans As EnvDTE80.Transport = dbg2.Transports.Item("Default")
Dim dbgeng(1) As EnvDTE80.Engine
dbgeng(0) = trans.Engines.Item("Managed")
Dim proc2 As EnvDTE80.Process2 = dbg2.GetProcesses(trans, "имя_инстанса_отлажываемого_сервера").Item("w3wp.exe")
proc2.Attach2(dbgeng)
Catch ex As System.Exception
MsgBox(ex.Message)
End Try
End Sub
3. Этот скрипт вешается на хоткей — дело в шляпе!
P.S. для тех, кому лень курить доки, "имя_инстанса_отлаживаемого_сервера" для локального компа равно NETBIOS-имени компа, для удалённых серваков — "DOMAIN\Username@ServerName".