Wcf data service - ошибка 401 - PullRequest
       10

Wcf data service - ошибка 401

1 голос
/ 21 декабря 2010

Я создаю общедоступный веб-сайт, на котором вам нужно войти в систему, и я использую asmx-сервисы до сих пор. Теперь я хочу попробовать сервис данных Wcf и запросить сервис через jQuery.

На localhost все работает нормально, но как только я публикую свой веб-сайт, я получаю эту ошибку:

401 - Unauthorized: Access is denied due to invalid credentials.

Я сопоставил свою базу данных с использованием Entity Data Model, а затем создал службу данных wcf, которая подключена к моей модели данных следующим образом:

public class MyService : DataService<MyEntities>
{
    // This method is called only once to initialize service-wide policies.
    public static void InitializeService(DataServiceConfiguration config)
    {

        config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;

        config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);

    }
}

где MyEntities указывается при сопоставлении моей модели данных сущностей с моей базой данных.

Как я уже писал, на localhost все работает нормально, я могу запросить свой сервис следующим образом:

        $.ajax({
            type: "GET",
            url: "/OData/MyService.svc/Groups",
            data: "{}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
//some logic
}});

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

Я очень хорошо использую Wcf-сервисы, поэтому мне очень нужна помощь, чтобы заставить это работать, я пытался в Google, но безуспешно. Нужно ли выполнять какие-либо настройки в моем сервисе или в файле web.config или в IIS?

Я использую IIS 7.0 и asp.net 4.0

Ответы [ 2 ]

0 голосов
/ 22 декабря 2010

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

Дело закрыто.

0 голосов
/ 22 декабря 2010

Ошибка 401 - ошибка HTTP - доступ запрещен.

Это происходит из IIS, прежде чем он достигнет кода на стороне вашего сервера c #.

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

...