>

wcf 서비스를 편안한 아키텍처로 변환하려고합니다. POST 요청을 지원하기 위해 인증 목적으로 사용자 권한을 확인하는 ConnectToApplication이라는 서비스를 변환하는 것으로 시작했습니다. 다음 자바 스크립트 코드를 사용하여 서비스를 쿼리하기 위해 Ajax를 시도하는 중 :

  var formData={"userName":"admin", "password":"act;2016@","ApplicationName":"actior"}

        $.ajax({
            url : "http://localhost:10220/AdministrationService/ConnectToApplication",
            type: "POST",
            data: formData,

            success: function (data) { 
            alert('success');
            },
              error: function(XMLHttpRequest, textStatus, errorThrown) { 
                           alert("Status: " + textStatus); alert("Error: " + errorThrown); 
               } 
        });

다음 오류와 함께 HTTP 400 (잘못된 요청)이 있습니다 :

The server encountered an error processing the request. The exception message is 'The incoming message has an unexpected message format 'Raw'. The expected message formats for the operation are 'Xml'; 'Json'. This can be because a WebContentTypeMapper has not been configured on the binding. See the documentation of WebContentTypeMapper for more details.'. See server logs for more details. The exception stack trace is:

at System.ServiceModel.Dispatcher.DemultiplexingDispatchMessageFormatter.DeserializeRequest(Message message, Object[] parameters) at System.ServiceModel.Dispatcher.UriTemplateDispatchFormatter.DeserializeRequest(Message message, Object[] parameters) at System.ServiceModel.Dispatcher.CompositeDispatchFormatter.DeserializeRequest(Message message, Object[] parameters) at System.ServiceModel.Dispatcher.DispatchOperationRuntime.DeserializeInputs(MessageRpc& rpc) at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& rpc) at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)

다음은 엔드 포인트 구성을위한 메타 데이터입니다.

 [OperationContract]
         [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest, UriTemplate = "ConnectToApplication/")]
        UserPermessionDTO ConnectToApplication(string userName, string password, string ApplicationName);

WCF 구성은 다음과 같습니다.

   <services>
      <service name="ActiorServeurConsoleApp.AdministrationService" behaviorConfiguration="serviceBehavior">
            <endpoint address="" binding="webHttpBinding" contract="ActiorServeurConsoleApp.IAdministrationService"
                      behaviorConfiguration="web">
              <identity>
                <dns value="localhost" />
              </identity>
            </endpoint>
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
            <host>
              <baseAddresses>
                <add baseAddress="http://localhost:10220/AdministrationService/" />
              </baseAddresses>
            </host>
          </service>
    <services>

    <serviceBehaviors>
      <behavior name="serviceBehavior">
              <serviceMetadata httpGetEnabled="false"/>
              <serviceDebug includeExceptionDetailInFaults="true"/>
            </behavior>
     </serviceBehaviors>
  <behavior name="serviceBehavior">
          <serviceMetadata httpGetEnabled="false"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>

  • 답변 # 1

    게시물의 콘텐츠 유형을 다음과 같이 설정할 수 있습니다

    contentType : "application/json;charset = utf-8",

    또한 피들러 나 우체부 같은 도구를보고 유형을 확인하고 서비스를 테스트 할 수도 있습니다

  • 이전 java - 문자열에 공백으로 구분 된 하위 문자열이 포함되어 있는지 확인
  • 다음 MATLAB에서 인덱스의 함수와 같은 행렬 값 설정