Режим аутентификации = формы, вызывающие ошибки в конечной точке WCF

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

Тип контента 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>

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


person SmudgerDan    schedule 08.04.2011    source источник


Ответы (1)


Вы можете исключить определенные файлы из проверки подлинности форм с помощью узла местоположения в 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

person Sergio Vicente    schedule 08.04.2011
comment
Это не решило мою проблему, но ответило на мой вопрос, поэтому пометило его как правильный ответ и создало новый вопрос здесь: stackoverflow.com/questions/5596304/ - person SmudgerDan; 08.04.2011