Ошибка запроса веб-службы WCF Rest при использовании форм Аутентификация и авторизация - PullRequest
0 голосов
/ 01 марта 2012

Я получаю следующую ошибку запроса от моего веб-сервиса WCF Rest при использовании форм Аутентификация и Авторизация.Он отлично работает без аутентификации и авторизации: -

"Сервер обнаружил ошибку при обработке запроса. Пожалуйста, см. Страницу справки службы для построения действительных запросов к службе."

Встроенный.net 4, поэтому нет файла .svc, вот код службы: -

        namespace WcfRestService1
{

    [ServiceContract]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]

    public class Service1
    {


        [OperationContract]
        [WebGet(ResponseFormat = WebMessageFormat.Json)]
        public string GetHelloMessage()
        {
            return ("hello from web service");

        }

    }
}

Вот код веб-конфигурации: -

 <configuration>




  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>

  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
      <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    </modules>
  </system.webServer>



  <system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
    <standardEndpoints>
        <standardEndpoint name="" helpEnabled="true" crossDomainScriptAccessEnabled="true" defaultOutgoingResponseFormat="Json" automaticFormatSelectionEnabled="true"/>
      </webHttpEndpoint>
    </standardEndpoints>
  </system.serviceModel>



    <system.web>
            <authentication mode="Forms">
                <forms defaultUrl="Service1" timeout="20"
                     ticketCompatibilityMode="Framework40"
                     loginUrl="login.aspx" name=".Mobile-Rest-Api" cookieless="UseCookies"/>
            </authentication>


        <authorization>
            <deny users="?" />

            <allow users="*"/>

        </authorization>
        <!--<authentication mode="None"/>-->
        </system.web>



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


</configuration>

Любая помощь по этому вопросу будетотлично, заранее спасибо.

1 Ответ

2 голосов
/ 01 марта 2012

Проблема в том, что вы используете метод аутентификации, который не поддерживает вызов служб.

Аутентификация по формам используется, когда пользователь обращается к сайту, если пользователь не аутентифицирован, он направляется в форму входа, в которой он заполняет имя пользователя и пароль.

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

Вам нужно выбрать другой метод аутентификации.

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