Как отладить несколько сервисов Sharepoint на одном компьютере? - PullRequest
0 голосов
/ 19 июля 2011

Мне нужно отладить службу Sharepoint WCF, развернутую для Sharepoint 2010. Однако коллеге необходимо отладить другую службу Sharepoint, развернутую на той же физической машине. Если мы одновременно отлаживаем, с отладчиком Visual Studio происходят странные вещи. Например, его отладчик сломался бы на установленных мной точках останова, или я вижу исключения, вызванные его кодом. Имейте в виду, мы отлаживаем разные сервисы в разных решениях. Исходя из информации, которую я собрал до сих пор, это поведение похоже на то, что существует только один процесс w3wp на пул приложений, к которому присоединяются оба экземпляра отладчика Visual Studio. Поэтому я решил, что должен попробовать запустить мой сервис в другом пуле приложений, чтобы подключить другой w3wp.exe. Вот что я пробовал, но я не уверен, если то, что я пытался, имеет какой-то смысл, пожалуйста, уточните:

Диспетчер IIS показывает, что существует два разных пула приложений Sharepoint (кроме одного для Central Adminisitration) и сайт для каждого. Поэтому я попытался развернуть свою службу с помощью другого пула приложений, указав в качестве местоположения развертывания URL-адрес другого сайта. Однако виртуальный каталог _vti_bin службы по-прежнему отображается в тот же физический каталог ...\Web Server Extensions\14\ISAPI\. Развертывание из Visual Studio работает, но получение ServiceReference - нет. При попытке открыть <url>/_vti_bin/MyService.svc/MEX появляется страница с сообщением об ошибке, сообщающим, что там уже есть экземпляр привязки, связанный с URL. Итак, я думаю, что это либо не способ сделать это, либо просто невозможно «изолировать» службы таким образом. Я очень не решаюсь просто проб и ошибок с настройками IIS Manager или Sharepoint Central Administration, потому что я чувствую, что не знаю достаточно, чтобы избежать путаницы.

Может кто-нибудь сказать мне, как я могу решить это?

1 Ответ

1 голос
/ 21 июля 2011

URL, указанный при развертывании в Visual Studio, может вводить в заблуждение. Если у вас есть изолированное решение, оно будет развернуто в этом месте. Если у вас есть решение для фермы, оно развертывается централизованно и использует URL-адрес, чтобы выяснить, какой пул приложений следует переработать. Если у вас есть определенные настройки веб-приложения в решении (т.е. safecontrols), они будут применены к веб-приложению, на котором размещен URL.

_vti_bin доступен для каждого сайта во всей ферме; как это _layouts. Поскольку служба будет отображаться через несколько URL-адресов (по одному для каждого сайта), команда SharePoint создала собственные фабричные классы, чтобы сделать это возможным. Проверьте один из встроенных файлов SVC, и вы увидите, что он использует специальный класс фабрики. Используйте это в своем SVC-файле, чтобы показать ваш сервис на всех сайтах.

Что касается отладки, никогда не бывает хорошей идеей, когда несколько разработчиков используют одну и ту же машину. Если вы действительно хотите это сделать, я предлагаю использовать два веб-приложения с разными пулами приложений. Таким образом, у каждого разработчика есть свой собственный процесс для подключения. Если вы используете разные учетные записи для пула приложений, вам будет проще найти правильную учетную запись в диалоговом окне «присоединить процесс».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...