WCF REST и IIS Express 7.5 возвращает ошибку запроса (400)

Меня поразила следующая проблема при размещении служб WCF Rest в IIS.

Интерфейс:

[ServiceContract]
public interface ITestService
{
    [OperationContract]
    [WebInvoke(Method = "GET", UriTemplate = "/GetEmployee/{userid}", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json,BodyStyle=WebMessageBodyStyle.Bare)]
    IEnumerable<Employee> GetPlans(string userid);
}

TestService.svc.cs:

public class TestService : ITestService
{
    public IEnumerable<Employee> GetEmployee(string userid)
    {    
        return Employee
    }
}

когда я использую сервер Cassini, он работает нормально, возвращает результат в формате json. Урл следующий:

http://localhost:58764/TestService/TestService.svc/GetEmployee/2

но когда я размещаю это в IIS Express 7.5 по URL-адресу:

http://localhost/TestService/TestService.svc/GetEmployee/2)

он просто говорит:

Ошибка запроса

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

но URL в

http://localhost/TestService/TestService.svc/help

без проблем возвращает все доступные методы.


person Naveen    schedule 16.03.2012    source источник
comment
Вы уверены, что объект Employee сериализуем. Иногда сериализация через cassini проходит, но не работает при размещении на IIS. Также попробуйте включить трассировку в своей службе при размещении в IIS, чтобы узнать точную причину сбоя вашего запроса. Возможно, это также связано с размером возвращаемых данных.   -  person Rajesh    schedule 16.03.2012


Ответы (1)


Не уверен в этом вопросе.

Можете ли вы попробовать переустановить .NET Framework?

  • Откройте командную строку Visual Studio 2010
  • Введите «aspnet_regiis -i» и нажмите ввод.
  • перезапустить IIS

  • Убедитесь, что в IIS установлен компонент WCF. Если он не установлен.

  • Выполните команду ниже и перезапустите IIS C: \ Windows \ Microsoft.NET \ Framework \ v3.0 \ Windows Communication Foundation> Service ModelReg.exe -i

Попробуйте после этого. Надеюсь, это сработает, у меня была аналогичная проблема, которая была решена после этих шагов.

person Shailesh    schedule 16.03.2012
comment
Спасибо, Шайлеш. Я попробовал выполнить эти действия, но проблема не исчезла. после этого я попытался использовать SVCTraceViewer.exe и обнаружил, что проблема связана с проблемой олицетворения. наконец я решил это. - person Naveen; 19.03.2012