ASMX + внешняя dll

Я работаю над клиентом Silverlight для Microsoft Team Foundation Server. Я использую веб-службу ASMX для выполнения реальных вызовов с использованием API TFS.

Все работает нормально, когда я запускаю его с сервером разработки Visual Studio, но я не могу понять, как развернуть приложение в IIS.

Я могу заставить веб-службу ASMX работать, если только это не вызов, использующий API TFS. Я пытался поместить все библиотеки DLL API TFS во все каталоги, о которых я только мог подумать, и даже установить Visual Studio SDK. Ничего не работает!

ОБНОВЛЕНИЕ 15 ноября 2009 г., 19:50 по восточному поясному времени:

Оказывается, API-интерфейс TFS пытался создать кеш в папке c:\Documents and Settings\Default User\Local Settings\Application Data\Microsoft\Team Foundation\2.0\Cache\, а у пользователя IIS_WPG не было доступа к этому так. Легко исправить.


person Community    schedule 15.11.2009    source источник
comment
Что вы подразумеваете под Ничего не работает!. Вы получаете исключения? Нужно больше информации.   -  person Kev    schedule 15.11.2009
comment
Отображается внутренняя ошибка сервера 500. Мы не получаем никаких исключений, просто любые вызовы API TFS выдают ошибку 500.   -  person    schedule 15.11.2009
comment
Наиболее вероятной причиной является то, что вы не можете загрузить сборки TFS (поскольку не установлен Team Explorer) или проблема с проверкой подлинности на сервере TFS.   -  person Richard Berg    schedule 16.11.2009


Ответы (1)


Единственный поддерживаемый способ установки TFS API — установка Team Explorer. Вы можете попытаться получить в GAC только те сборки, которые вам нужны, но вы сами по себе [и технически нарушаете лицензионное соглашение]...

Что еще нужно проверить:

  • IIS работает в 32-битном режиме
  • Олицетворение работает корректно
  • Настройки прокси

Какая у вас ошибка? Вы пытались подключить отладчик к IIS?

person Richard Berg    schedule 15.11.2009
comment
IIS работает в 32-разрядной версии. Подтвержденные настройки прокси и брандмауэра не являются причиной. Не могли бы вы подробнее рассказать об имперсонации? Это то, с чем я не знаком. Нам еще предстоит подключить отладчик к IIS, что мне с этим делать? - person ; 15.11.2009
comment
Ваша служба должна использовать олицетворение, чтобы учетные данные пользователя пересылались в TFS. В противном случае TFS будет жаловаться, что не знает, кто такая [ваша учетная запись службы IIS]. Присоединение отладчика — это самый простой способ узнать, какая строка кода вызывает исключение + каково состояние ваших внутренних переменных в данный момент. - person Richard Berg; 16.11.2009