Странная ошибка связи в Win2008

У меня есть служба Windows, в которой размещается основная служба WCF. Оба клиента для этой службы размещены в IIS 7, первый — это служба WCF, размещенная в IIS, а второй — стандартное приложение Asp.Net. Оба клиента, размещенные на IIS, взаимодействуют со службой Windows по именованным каналам.

Служба WCF, размещенная в IIS, может отлично взаимодействовать со службой WCF, размещенной в Windows, но служба Asp.Net завершается с ошибкой: имя канала не может быть получено из URI канала: доступ запрещен.

Моя первая реакция заключается в том, что это где-то проблема с разрешениями, но я не знаю, где. И, во-вторых, почему служба WCF, размещенная в IIS, может без проблем взаимодействовать, но приложение Asp.Net не работает?


person Mike_G    schedule 02.02.2009    source источник
comment
Одна вещь, чтобы добавить: родительский веб-сайт этой системы — веб-сайт Helm, приложение, с которым я не слишком знаком. Когда я переключил пользователя, которого использовал AppPool, с NetworkService на LocalSystem, это привело к ошибке в родительских веб-сайтах web.config, полагая, что я пошел по неправильному пути.   -  person Mike_G    schedule 02.02.2009


Ответы (3)


Хорошо, я решил это, вернее, я понял, где была проблема с разрешением.

Оказывается, в настройке анонимной аутентификации использовался какой-то странный пользователь, созданный нашим клиентом (физическое лицо, а не наш клиент WCF), а не пользователь NetworkService (идентификатор, который использовал пул приложений).

Но это почти порождает другой вопрос: почему даже недавно созданные сайты по умолчанию использовали этот IUSR, а не системные значения по умолчанию? В любом случае, я просто надеюсь, что это будет проиндексировано в Google, поскольку статей, касающихся этого, практически не было.

person Mike_G    schedule 04.02.2009

Проверьте удостоверение пулов приложений, в которых находятся службы WCF и ASP.NET.

Может быть, AppPool службы WCF имеет удостоверение с правами, отличными от прав другого AppPool?

person MartinHN    schedule 02.02.2009
comment
Я думал то же самое, но они оба используют один и тот же пул приложений. Я даже пытался переключить пользователя с NetworkService на LocalSystem, на LocalUser. Неудачно. - person Mike_G; 02.02.2009

Кроме того, вы можете отметить, что IUSR является учетной записью IIS7 по умолчанию для анонимных средств доступа. См. Понимание встроенных учетных записей пользователей и групп в IIS 7.0 для объяснения учетных записей по умолчанию.

Надеюсь, это полезно.

person Howard Hoffman    schedule 16.02.2009