Windows Azure ACS: не удается найти сборку «Microsoft.IdentityModel» - PullRequest
3 голосов
/ 09 февраля 2012

У меня есть веб-роль ASP, которая прекрасно работает без ACS.Когда я добавляю ACS в мое приложение, оно отлично работает локально.Однако, когда я развертываю его в облаке, он, кажется, не упаковывает Microsoft.IdentityModel.dll.

Теперь я сделал следующее:

  1. Заверено в ссылках, которые копируют local = true для "Microsoft.IdentityModel"
  2. Усталое повторное добавление ссылок STS,3.Прямой щелчок >> Добавить ссылку >> Microsoft.IdentityModel.dll

Раньше это также работало без необходимости устанавливать WIF на фактический сервер.

Есть идеи?

Ответы [ 3 ]

2 голосов
/ 09 февраля 2012
1 голос
/ 01 июня 2012

Мне удается найти причину проблемы. Таким образом, у меня было 1 x WebRole и 1 X роль WCF в том же решении. ACS работал нормально до тех пор, пока в приложении не использовались три шага, как только я попытался использовать службу WCF. В тот момент мне показалось, что Azure создает виртуальную машину для каждой роли. Так что это сделало общее с тех пор, как он прошел аутентификацию до того момента, когда я попытался использовать сервис WCF. Сборка отсутствовала в WebRole, а не в созданной виртуальной машине WCF. Поэтому я позаботился о том, чтобы на этой виртуальной машине был установлен WIF, и он заработал. Я до сих пор не понимаю на 100%, зачем мне нужно было устанавливать WIF на виртуальной машине WCF, но в конце концов это стало причиной моей проблемы.

0 голосов
/ 02 марта 2012

Единственное, что сработало для меня, описано в этом посте в разделе «Использование пакета обновлений Windows» (но мне пришлось внести некоторые незначительные изменения в скрипт запуска)

В основномМне пришлось создать задачу запуска, которая выполняет командный файл InstallWif.cmd, который я создал в своем веб-проекте.Я также скачал и включил установочный пакет WIF (Windows6.0-KB974405-x64.msu) в свой веб-проект.Я установил для свойства «Копировать в выходной каталог» значение «Копировать всегда» для обоих этих файлов.

InstallWif.cmd содержал следующий скрипт

@echo off
sc config wuauserv start= demand
wusa.exe "%~dp0Windows6.0-KB974405-x64.msu" /quiet /norestart
sc config wuauserv start= disabled
exit /b 0

Обратите внимание, чтоМне пришлось использовать Windows6.0-KB974405-x64.msu, а не Windows6.1-KB974405-x64.msu.Я обнаружил, что версия 6.1 не будет установлена, войдя в экземпляр виртуальной машины Azure с помощью подключения к Azure через удаленный рабочий стол и попытавшись вручную установить эту версию там.

Задача запуска определяется в файле ServiceDefinition.csdef, как этот

 <Startup>
   <Task commandLine="InstallWif.cmd" executionContext="elevated" taskType="simple" />
 </Startup> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...