WCF REST и IIS Express 7.5 возвращает ошибку запроса (400) - PullRequest
2 голосов
/ 16 марта 2012

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

Интерфейс:

[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. URL следующий:

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

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

1 Ответ

0 голосов
/ 16 марта 2012

Не уверен в этой проблеме.

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

  • Открыть командную строку Visual Studio 2010
  • Тип "aspnet_regiis -i"и нажмите enter
  • перезапустите IIS

  • Проверьте, установлен ли в IIS компонент WCF.Если он не установлен.

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

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

...