Режим аутентификации = "Формы", вызывающие ошибки в конечной точке WCF - PullRequest
2 голосов
/ 08 апреля 2011

У меня есть конечная точка WCF внутри моего проекта веб-приложения .NET 4.0.С помощью тестового клиента VS2010 WCF я могу правильно подключиться к услуге.Однако, когда я обращаюсь к сервису, я получаю общее сообщение об ошибке:

Тип содержимого text / html;charset = UTF-8 ответного сообщения не соответствует типу содержимого привязки (text / xml; charset = utf-8).При использовании пользовательского кодировщика убедитесь, что метод IsContentTypeSupported реализован правильно.Первые 1024 байта ответа были:

Я обнаружил, что когда я удаляю аутентификацию из файла web.config, сервис работает правильно:

<authentication mode="Forms">
  <forms cookieless="AutoDetect" loginUrl="~/Security/LoginClient.aspx" name="FORMAUTH" />
</authentication>

Любые идеи, какЯ могу удалить только этот сервис из аутентификации?

1 Ответ

3 голосов
/ 08 апреля 2011

Вы можете исключить определенные файлы из проверки подлинности с помощью узла местоположения в web.config:

<location path="MyService.svc">
   <system.web>
      <authorization>
          <allow users="*" />
      </authorization>
   </system.web>
</location>

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

<location path="MyServiceFolder/">
   <system.web>
      <authorization>
         <allow users="*" />
      </authorization>
   </system.web>
</location>

Дополнительная информация об элементе местоположения в MSDN:

http://msdn.microsoft.com/en-us/library/b6x6shw7%28vs.71%29.aspx

...