Сбой службы пользовательских доменов, но аутентификация работает (шаблон приложения Silverlight Biz) - PullRequest
1 голос
/ 30 сентября 2010

Я размещаю приложение, созданное на основе шаблона бизнес-приложения Silverlight, на сервере IIS.Я использую встроенную проверку подлинности с помощью форм, которая работает отлично.

К сожалению, я добавил дополнительный сервис, который имеет своеобразное поведение.Если я удаленно на сервер и использую сайт, все работает как положено.Если я подключаюсь к сайту с другого компьютера, аутентификация все еще работает, но моя пользовательская служба домена не работает со следующей ошибкой:

IE выдает это сообщение об ошибке:

System.ServiceModel.DomainServices.Client.DomainOperationException: операция загрузки не выполнена для запроса 'Get___'.Возникло исключение типа «System.ServiceModel.DomainServices.Client.DomainOperationException».

Я попытался отладить процесс и получил немного больше информации:

System.ServiceModel.DomainServices.Client.DomainOperationException: операция загрузки не выполнена для запроса 'Get___'.Удаленный сервер возвратил ошибку: NotFound.---> System.ServiceModel.CommunicationException: ...

Моя политика доступа к клиентам и междоменная политика находятся как в wwwroot, так и в корне сайта и следующие:

<?xml version="1.0" encoding="utf-8" ?> 
<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="*">
        <domain uri="*" /> 
        <domain uri="http://*" /> 
        <domain uri="https://*" />
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true" /> 
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

Служба домена, которая не работает, использует модель сущности ADO.NET.Объекты, которые находятся в той же базе данных aspnetdb, которая используется для аутентификации, и я предоставил права доступа к файлам для пользователя IIS (и администратора, я получил отчаянно) для папки App_Data, которая содержит базу данных.

Опять же, все сервисы работают при локальном подключении к серверу.При удаленном подключении работают только службы аутентификации / регистрации.

Я искал два дня и пробовал каждое найденное решение, но, похоже, оно не работает.Любой совет или направление будет принята с благодарностью.

Ответы [ 2 ]

1 голос
/ 04 февраля 2011

Хотя это довольно поздно для вашего проекта, но это может помочь кому-то еще.Похоже, у вас проблемы с аутентификацией в базовой базе данных.Возможно, вы захотите узнать, какие виды олицетворения происходят на уровне базы данных.

У меня была похожая проблема, и оказалось, что я пытался получить доступ к базе данных как учетная запись клиента Sliverlight на компьютере, которой никогда не было в авторизованном.учетные записи (хотя моя аутентификация работала отлично, как в вашем случае).Изменение удостоверения пула приложений исправило это для меня (я использовал учетную запись сетевой службы на ПК, подключенном к домену, который использует учетную запись Computer $ для входа в систему от вашего имени)

Когда вы сталкиваетесь с CommunicationException, вы действительно хотитепосмотрите на InnerException, который расскажет, в чем реальная проблема.

Если ничего нет, то вам нужно будет выполнить отладку на стороне сервера (пошаговое обслуживание), чтобы увидеть, что вызывает исключение.

CommunicationException возникает, если исключение выдается на стороне сервера WCF и не превращается в сбой, вызывающий сбой канала (по крайней мере, в моем ограниченном опыте).

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 27 мая 2013

трассировка WCF мне не помогла!Это дает пустое сообщение.

Наконец, ДЛЯ МОЕГО СЛУЧАЯ,

  • Я удалил [Требуется аутентификация] как атрибуты из методов

  • Я удалил [Требуется проверка подлинности] из класса обслуживания домена (проверьте все партиалы)

  • Если он работает на локальном, но не на сервере, это должно быть проблемой конфигурации.В моем случае я использовал функцию membership.ResetPassword(), которая отключена в web.config как enablePasswordReset = false.

Кроме того, некоторые люди говорят, что некоторые методы просто могут вызывать в asp.net.compatibilityрежим.

Надежда помогает кому-то еще.

...