개체 속성이 잘못된 경우 WCF (400) 잘못된 요청

Neildt

메서드 호출에 대한 개체를 허용하는 Wcf (ajax 활성화) 서비스가 있습니다. 내 Wcf 방법은 다음과 같습니다.

[OperationContract]
[XmlSerializerFormat]
[WebInvoke(Method = "POST", UriTemplate = "/XML/GetTypes", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Xml)]
XElement XMLGetTypes(TypeRequest TypeRequest)
{
    return Utilities.Convert.ObjectToXElement(TypeRequest.Execute(TypeRequest));
}

'TypeRequest'객체는 다음과 같습니다.

public class
{
    public int Id {get;set;}
    public string Name {get; set;}
}

내가 가진 문제는 같은 요청 개체에서와 같이 잘못된 데이터로 메서드를 호출하는 경우입니다.

<TypeRequest>
<Id>abc</Id>
<Name>Joe King</Name>
</TypeRequest>

보시다시피 Id는 정수 여야하지만 문자열로 전달됩니다. 이로 인해 Wcf 서비스에서 잘못된 요청 400 응답이 발생합니다.

이상적으로는 오류를 처리하고 적절한 응답을 반환하고 싶습니다. 예를 들어 오류 정보가 포함 된 JSON 또는 XML 응답을 반환하고 싶습니다.

이것이 가능한가 ?

조롱

IIS를 사용하면 파이프 라인 전체에서 오류 처리기를 만들 수 있습니다. 코드를 처리하는 방법과 반환하는 내용은 IIS 응용 프로그램의 모든 오류를 처리하므로주의해야하지만 사용자에게 달려 있습니다.

public class ErrorHttpHandler : IHttpHandler
    {
        public bool IsReusable
        {
            get { return true; }
        }

        public void ProcessRequest(HttpContext context)
        {
            if (context.Request.QueryString.Count == 0)
                return;

            string strStatusCode = context.Request.QueryString[0].Split(';').FirstOrDefault() ?? "500";
            int statusCode = 500;
            int.TryParse(strStatusCode, out statusCode);

            string message = "Unhandled server error.";

            switch (statusCode)
            {
                case 400:
                    message = "Bad request.";
                    break;

                case 404:
                    message = "Item not found.";
                    break;
            }

            context.Response.StatusCode = statusCode;
            context.Response.Write(string.Format("<Error><Message>{0}</Message></Error>", message));
        }
    }

web.config에서 핸들러를 호출하려면 다음 코드를 추가하십시오.

<system.webServer>
    <httpErrors errorMode="Custom">
      <clear/> 
      <error statusCode="404" path="/application/ErrorHandler" responseMode="ExecuteURL"/>
      <error statusCode="400" path="/application/ErrorHandler" responseMode="ExecuteURL"/>
    </httpErrors>
    <handlers>
      <add name="ErrorHandler" path="ErrorHandler" verb="*" type="Your Application.ErrorHttpHandler, FrameworkAssembly"/>
    </handlers>
  </system.webServer>

이 모든 것은이 사이트 에서 추출 되었습니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

WCF는 datetime 속성 (400 잘못된 요청)이있는 개체를 허용하지 않습니다.

분류에서Dev

브라우저에서 WCF 메서드 호출이 400 개의 잘못된 요청을 반환합니다.

분류에서Dev

오류 400-> wcf 클라이언트 측의 잘못된 요청

분류에서Dev

AJAX : 400 잘못된 요청

분류에서Dev

$ .ajax 400 잘못된 요청

분류에서Dev

Angularjs 잘못된 요청 (400)

분류에서Dev

Guzzle 400 잘못된 요청

분류에서Dev

WCF WebInvoke JSON 역 직렬화 실패-400 잘못된 요청

분류에서Dev

WCF Post 메서드, 400 잘못된 요청 반환

분류에서Dev

Wordpress wp rest api v2 오류 400 (잘못된 요청) "개체 {코드 :"rest_invalid_param ", 메시지 :"잘못된 매개 변수 : id ", 데이터 : 개체}

분류에서Dev

HTTP GET이 400 개의 잘못된 요청을 제공합니다 (telnet, arduino).

분류에서Dev

소켓이있는 Python GET 요청-400 잘못된 요청

분류에서Dev

요청 라이브러리의 잘못된 요청 오류 400

분류에서Dev

IAM이 활성화 된 상태에서 AWS Neptune에 연결을 시도 할 때 400 개의 잘못된 요청

분류에서Dev

PUT의 쿼리 매개 변수가 잘못된 유형 인 경우 스프레이가 잘못된 이유 (405이지만 400이어야 함)로 내 요청을 거부합니다.

분류에서Dev

Nginx, AWS, EB, Docker, TCP 소켓 구성 400 잘못된 요청

분류에서Dev

Python 요청 POST-400-Python 요청이있는 잘못된 요청

분류에서Dev

Zeep : 400 클라이언트 오류 : 잘못된 URL 요청

분류에서Dev

400 잘못된 요청으로 Jersey FormDataParam이 실패 함

분류에서Dev

SQLalchemy / wtforms 업데이트 문제-400 잘못된 요청

분류에서Dev

파이썬 소켓 잘못된 요청 400

분류에서Dev

잘못된 요청 (WCF 데이터 서비스)

분류에서Dev

400 잘못된 요청 잘못된 동사 SharePoint Rest API Java

분류에서Dev

flask_socketio + flask + gunicorn + nginx로 502 개의 잘못된 게이트웨이와 400 개의 잘못된 요청 받기

분류에서Dev

Firebase 호스팅 400 잘못된 요청

분류에서Dev

Django Localhost의 잘못된 요청 (400)

분류에서Dev

POST 400 잘못된 요청 React 인증

분류에서Dev

400 잘못된 Perlbrew 설치 요청

분류에서Dev

AJAX 오류 : 400 잘못된 요청

Related 관련 기사

  1. 1

    WCF는 datetime 속성 (400 잘못된 요청)이있는 개체를 허용하지 않습니다.

  2. 2

    브라우저에서 WCF 메서드 호출이 400 개의 잘못된 요청을 반환합니다.

  3. 3

    오류 400-> wcf 클라이언트 측의 잘못된 요청

  4. 4

    AJAX : 400 잘못된 요청

  5. 5

    $ .ajax 400 잘못된 요청

  6. 6

    Angularjs 잘못된 요청 (400)

  7. 7

    Guzzle 400 잘못된 요청

  8. 8

    WCF WebInvoke JSON 역 직렬화 실패-400 잘못된 요청

  9. 9

    WCF Post 메서드, 400 잘못된 요청 반환

  10. 10

    Wordpress wp rest api v2 오류 400 (잘못된 요청) "개체 {코드 :"rest_invalid_param ", 메시지 :"잘못된 매개 변수 : id ", 데이터 : 개체}

  11. 11

    HTTP GET이 400 개의 잘못된 요청을 제공합니다 (telnet, arduino).

  12. 12

    소켓이있는 Python GET 요청-400 잘못된 요청

  13. 13

    요청 라이브러리의 잘못된 요청 오류 400

  14. 14

    IAM이 활성화 된 상태에서 AWS Neptune에 연결을 시도 할 때 400 개의 잘못된 요청

  15. 15

    PUT의 쿼리 매개 변수가 잘못된 유형 인 경우 스프레이가 잘못된 이유 (405이지만 400이어야 함)로 내 요청을 거부합니다.

  16. 16

    Nginx, AWS, EB, Docker, TCP 소켓 구성 400 잘못된 요청

  17. 17

    Python 요청 POST-400-Python 요청이있는 잘못된 요청

  18. 18

    Zeep : 400 클라이언트 오류 : 잘못된 URL 요청

  19. 19

    400 잘못된 요청으로 Jersey FormDataParam이 실패 함

  20. 20

    SQLalchemy / wtforms 업데이트 문제-400 잘못된 요청

  21. 21

    파이썬 소켓 잘못된 요청 400

  22. 22

    잘못된 요청 (WCF 데이터 서비스)

  23. 23

    400 잘못된 요청 잘못된 동사 SharePoint Rest API Java

  24. 24

    flask_socketio + flask + gunicorn + nginx로 502 개의 잘못된 게이트웨이와 400 개의 잘못된 요청 받기

  25. 25

    Firebase 호스팅 400 잘못된 요청

  26. 26

    Django Localhost의 잘못된 요청 (400)

  27. 27

    POST 400 잘못된 요청 React 인증

  28. 28

    400 잘못된 Perlbrew 설치 요청

  29. 29

    AJAX 오류 : 400 잘못된 요청

뜨겁다태그

보관