внезапно перестал работать файл clientaccesspolicy.xml (WCF / Silverlight) - PullRequest
0 голосов
/ 13 марта 2012

Очень расстроен всем этим, надеясь, что кто-то может помочь.

У меня было приложение Silverlight и WCF, работающие вместе без проблем в течение года. Чтобы заставить их работать, у меня сначала была небольшая боль, но в конце концов я с ней справился. Вся боль пришла от конфигурации / безопасности, 401-х, междоменного ада и т. Д.

У меня все настроено так, что у меня есть служба WCF, которая находится в своем собственном приложении / каталоге и работает в своем собственном пуле приложений.

На том же веб-сервере (IIS7) у меня есть другое приложение / каталог с приложением Silverlight, которое указывает на вышеупомянутую службу.

Имя сервера (для этого упражнения) - WEBSERVER1. Для этого мы создали CNAME WEB1. В прошлом, если бы пользователь перешел на http://WEB1/MyApp/ или http://WEBSERVER1/MyApp/, он бы работал. Внезапно вчера он начал плохо себя вести. Обычные пользователи начали получать запрос / ответ Windows (и даже если они введут информацию, они получат ошибку 401).

Моя служба WCF работает на сайте, который обеспечивает анонимный доступ (и это всегда работало). Мое приложение Silverlight запускается на сайте, в который встроены окна (и это всегда работало), поскольку я фиксирую имя пользователя Windows при их подключении.

Для справки: вчера я действительно создал НОВЫЙ пул приложений, в котором запущено приложение ASP.NET. Кажется, это работает нормально, но есть шанс создать этот новый пул приложений, и каталог application / привел к изменению.

У меня есть clientaccesspolicy.xml в моей папке wwwroot, а также в папке для каждого из двух приложений выше (на всякий случай). Я пытался продвигать NTLM вместо Negotiate в качестве поставщика (поскольку это помогло решить другую проблему, возникшую на другом сервере).

Попробовав некоторые изменения, я даже не могу заставить вещь вести себя одинаково при каждом вызове. Иногда мне будет предложено ввести учетные данные. В других случаях это будет работать, но затем скажем, что ему не удалось подключиться к службе WCF с "not found". В других случаях он будет работать нормально, но только если я использую реальное имя сервера, а не CNAME. При использовании CNAME я всегда получаю междоменную ошибку, даже если у меня есть междоменные xml-файлы в каждом корне каталога.

Это кошмар, и по сравнению с ним расширенный анализ алгоритмов кажется забавным и легким. Понимает ли Microsoft, как трудно было заставить эту комбинацию (IIS7 / WCF / Silverlight / провайдеры / разрешения / скрытые или отсутствующие сообщения об ошибках) заставить работать ??

1 Ответ

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

Я нашел решение, которое, кажется, работает.

В этом случае мне пришлось изменить режим аутентификации для веб-сайта по умолчанию (на котором размещен файл clientaccesspolicy.xml) с анонимного доступа к Windows Integrated,Я не понимаю, почему это работало в течение года или около того, а затем прекратилось, но, похоже, оно решило эту проблему.

Новое приложение, которое я развернул вчера, было стандартным веб-приложением ASP.NET, которое япоместите его в собственный каталог приложений и свой собственный пул приложений, чтобы гарантировать, что он не вызовет такого рода проблемы.Я до сих пор даже не уверен, что это так.

Я решил это, пытаясь перейти с моего компьютера к реальному файлу http://servername/clientaccesspolicy.xml, и это выдало мне ошибку 401.Я переключился с анонимного на окна, встроенные в этот веб-сайт по умолчанию (в котором нет ничего, кроме этого XML-файла), и это решило проблему с разрешениями.Затем мне пришлось разрешить фактическим группам AD иметь доступ для чтения к этой папке (если нет, то они получили приглашение user / pw и не смогли пройти).

...