Как отладить: вызов службы WCF работает в VS, но не в IIS - PullRequest
2 голосов
/ 23 января 2011

Я пытаюсь использовать ASP.Net AuthenticationService для аутентификации пользователей из моего приложения Silverlight. У меня есть веб-приложение со службой, которая указывает на «System.Web.ApplicationServices.AuthenticationService». В моем файле web.config определены служба, конечная точка, привязка, поведение и т. Д. Для базы данных членства я использую SQL Express с файлом MDF.

Я вполне уверен, что все это настроено правильно, потому что все работает нормально, если я запускаю его в Visual Studio. Мое приложение Silverlight вызывает службу AuthenticationService, передает имя пользователя и пароль и возвращает ответ.

Однако при развертывании в IIS вызов службы AuthenticationService всегда отвечает исключением: «Удаленный сервер возвратил ошибку: не найден»

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

В любом случае, может ли кто-нибудь предоставить какие-либо советы или рекомендации по развертыванию приложения Silverlight с использованием службы аутентификации с SQL Express и IIS?

Обновление: я установил пробную версию SQL Server 2008 и получил те же результаты. Я могу заставить все работать нормально при работе с Visual Studio, но не в IIS. Если у кого-нибудь есть ссылка или руководство по использованию службы аутентификации от Silverlight в IIS, я был бы признателен.

Обновление 2: проблема была с моими настройками аутентификации в SQL Server. Я смог отследить это, включив трассировку, как предложено в комментариях. Я обновил вопрос о том, как отлаживать подобные проблемы, когда ваши сервисные вызовы работают в Visual Studio, но не в IIS.

1 Ответ

3 голосов
/ 24 января 2011

Например, я добавил этот код в конфигурацию:

<system.diagnostics>
<sources>
  <source name="System.ServiceModel" switchValue="Critical,Error" >
    <listeners>
      <add name="xml" />
    </listeners>
  </source>
    <source name="System.ServiceModel.MessageLogging" switchValue="Critical,Error">
      <listeners>
        <add name="xml" />
      </listeners>
    </source>
</sources>
<sharedListeners>
  <add initializeData="D:\WcfLog.svclog" type="System.Diagnostics.XmlWriterTraceListener" name="xml" />
</sharedListeners>
<trace autoflush="true" />

Файл с расширением "* .svclog" может быть открыт Microsoft Service Trace Viewer. Trace Viewer И исключения теперь более очевидны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...