2013-03-18 7 views
12

सामग्री सामग्री से मेल नहीं खाता है, मैं अकेले स्टैंड का उपयोग करके डब्लूसीएफ वेब सेवा का उपभोग करने की कोशिश कर रहा हूं आवेदन। मैं इंटरनेट एक्सप्लोरर का उपयोग करके इस सेवा को दृश्य स्टूडियो सेवा संदर्भों में देखने में सक्षम हूं।सामग्री प्रकार अनुप्रयोग/xml; प्रतिक्रिया संदेश का charset = utf-8 बाइंडिंग (टेक्स्ट/xml; charset = utf-8)

यह है त्रुटि मैं

The content type text/html; charset=UTF-8 of the response message does not match the content type of the binding (text/xml; charset=utf-8). 

हो रही है मैं कैसे बदल सकता हूँ यह सही सामग्री प्रकार का उपयोग करने के लिए?

यहाँ मेरी कॉन्फ़िग फ़ाइल

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
<startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
</startup> 
<system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
      <binding name="G2WebServiceSoap11Binding" /> 
     </basicHttpBinding> 
     <customBinding> 
      <binding name="G2WebServiceSoap12Binding"> 
       <textMessageEncoding messageVersion="Soap12" /> 
       <httpTransport /> 
      </binding> 
     </customBinding> 
    </bindings> 
    <client> 
     <endpoint address="http://XXX.XX.XX.XX:XX/janus/services/G2WebService.G2WebServiceHttpSoap11Endpoint/" 
      binding="basicHttpBinding" bindingConfiguration="G2WebServiceSoap11Binding" 
      contract="G2ServiceReference.G2WebServicePortType" 
      name="G2WebServiceHttpSoap11Endpoint" /> 
     <endpoint address="http://XXX.XX.XX.XX:XX/janus/services/G2WebService.G2WebServiceHttpSoap12Endpoint/" 
      binding="customBinding" bindingConfiguration="G2WebServiceSoap12Binding" 
      contract="G2ServiceReference.G2WebServicePortType" 
      name="G2WebServiceHttpSoap12Endpoint" /> 
    </client> 
</system.serviceModel> 

यहाँ है ढेर

{System.ServiceModel.ProtocolException: The content type application/xml;charset=utf-8 of the response message does not match the content type of the binding (text/xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. 
The first 1024 bytes of the response were: '<Exception>org.apache.axis2.AxisFault: The endpoint reference (EPR) for the Operation not found is /janus/services/G2WebService and the WSA Action = null&#xd; 
    at org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:89)&#xd; 
    at org.apache.axis2.engine.Phase.invoke(Phase.java:333)&#xd; 
    at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:264)&#xd; 
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:163)&#xd; 
    at org.apache.axis2.transport.http.util.RESTUtil.invokeAxisEngine(RESTUtil.java:136)&#xd; 
    at org.apache.axis2.transport.http.util.RESTUtil.processURLRequest(RESTUtil.java:130)&#xd; 
    at org.apache.axis2.transport.http.AxisServlet$RestRequestProcessor.processURLRequest(AxisServlet.java:829)&#xd; 
    at org.apache.axis2.transport.http.AxisServlet.doGet(AxisServlet.java:255)&#xd; 
    at com.rm.janus.webservice.GroupCallServlet.doGet(GroupCallServlet.java:33)&#xd; 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)&#xd; 
    at javax.servlet.http.HttpSer'. ---> System.Net.WebException: The remote server returned an error: (500) Internal Server Error. 
    at System.Net.HttpWebRequest.GetResponse() 
    at System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout) 
    --- End of inner exception stack trace --- 

Server stack trace: 
    at System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest request, HttpWebResponse response, HttpChannelFactory`1 factory, WebException responseException, ChannelBinding channelBinding) 
    at System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout) 
    at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout) 
    at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout) 
    at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) 
    at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) 
    at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) 

Exception rethrown at [0]: 
    at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) 
    at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) 
    at InetgrisG2TestApp.G2ServiceReference.G2WebServicePortType.getStudentData(getStudentDataRequest request) 
    at InetgrisG2TestApp.G2ServiceReference.G2WebServicePortTypeClient.G2TestApp.G2ServiceReference.G2WebServicePortType.getStudentData(getStudentDataRequest request) in c:\Users\s\Documents\Visual Studio 2012\Projects\G2TestApp\InetgrisG2TestApp\Service References\G2ServiceReference\Reference.cs:line 2981 
    at InetgrisG2TestApp.G2ServiceReference.G2WebServicePortTypeClient.getStudentData(ServiceRequest serviceReq) in c:\Users\s\Documents\Visual Studio 2012\Projects\G2TestApp\G2TestApp\Service References\G2ServiceReference\Reference.cs:line 2987 
    at InetgrisG2TestApp.Program.Main(String[] args) in c:\Users\s\Documents\Visual Studio 2012\Projects\G2TestApp\G2TestApp\Program.cs:line 57} 
+0

क्या आपको एंडपॉइंट्स दोनों के लिए त्रुटि मिलती है? भी, अपवाद स्टैक – Dhawalk

+0

पोस्ट अपवाद सामग्री की जांच करें। देखें कि आपके पास 'इनरएक्सप्शन' है, या 'विवरण' संपत्ति में कुछ उपयोगी है या नहीं। –

+0

इस प्रश्न की जांच करें http://stackoverflow.com/questions/5263150/the-content-type-text-html-charset-utf-8-of-the-response-message-does-not-match – Dhawalk

उत्तर

15

यह है कि अपने WCF सेवा एचटीएमएल लौटा रहा है संभव है। इस मामले में, आप इसके बजाय XML को वापस करने के लिए सेवा पक्ष पर एक बाध्यकारी सेट अप करना चाहेंगे। हालांकि, यह असंभव है: यदि यह है मामला, मुझे बताएं और मैं अधिक जानकारी के साथ एक संपादन कर दूंगा।

अधिक संभावना है कि आपकी सेवा एक त्रुटि फेंक रही है, जो एक HTML त्रुटि पृष्ठ लौटा रही है। यदि आप विवरण चाहते हैं तो आप this blog post पर एक नज़र डाल सकते हैं।

टीएल; डीआर: त्रुटि पृष्ठों के लिए कुछ संभावित कॉन्फ़िगरेशन हैं। यदि आप आईआईएस पर होस्टिंग कर रहे हैं, तो आप डब्ल्यूसीएफ सेवा की web.config फ़ाइल से <httpErrors> अनुभाग को हटाना चाहेंगे। यदि नहीं, तो कृपया अपने सेवा होस्टिंग परिदृश्य का विवरण प्रदान करें और मैं उनसे मिलान करने के लिए एक संपादन के साथ आ सकता हूं।

संपादित करें:

अपने संपादित देखने के बाद, आप देख सकते हैं पूर्ण त्रुटि दी जा रही है। अपाचे यह नहीं बता सकता कि आप कौन सी सेवा कॉल करना चाहते हैं, और उस कारण से एक त्रुटि फेंक रही है। एक बार सही अंतराल होने के बाद सेवा ठीक काम करेगी - आपको गलत स्थान पर इंगित किया गया है। दुर्भाग्य से मैं उपलब्ध जानकारी से नहीं बता सकता कि सही स्थान है, लेकिन या तो आपकी कार्रवाई (वर्तमान में null!) या यूआरएल गलत है।

+0

हाय, इसे एक्सएमएल – simon1230756

+0

वापस करना चाहिए वेब सेवा एक ऐसे ग्राहक हैं जिनके पास मुझे इसका उपयोग नहीं है, यूआरएल के अलावा मुझे – simon1230756

+0

हाय उपभोग करने के लिए दिया गया है, मैंने आपके प्रतिक्रिया को संपादित किया है जिसमें आपने जो स्टैक ट्रेस देखा है, उसे देखा है। ऐसा लगता है आपको अपना एंडपॉइंट पता बदलना होगा। –

6

जब मैं इस त्रुटि में भाग गया, तो मैंने समाधान खोजने की कोशिश करने में घंटों बिताए।

मेरी समस्या यह थी कि जब मैं फ़ाइल को सहेजने के लिए गया तो मैंने गलती से वेब.कॉन्फिग में कुंजी स्ट्रोक "जी" मारा। मेरे पास एक स्ट्रैग्लर कैरेक्टर था जो सिर्फ बाहर बैठता था, इसलिए web.config को पता नहीं था कि अनुचित रूप से स्वरूपित डेटा की व्याख्या कैसे करें।

उम्मीद है कि इससे मदद मिलती है।

1

हम सभी HTTP अनुरोधों को HTTPS पर पुनर्निर्देशित करने के लिए आईआईएस के लिए यूआरएल रिवाइट एक्सटेंशन का उपयोग करते हैं। एक http: // ... पते पर परिवहन सुरक्षा का उपयोग न करने वाली सेवा को कॉल करने का प्रयास करते समय, यह त्रुटि दिखाई देती है।

तो यह जांचने योग्य हो सकता है कि क्या आप ब्राउज़र के माध्यम से सेवा के दोनों http और https पते को हिट कर सकते हैं और यह आपको 303 स्थिति कोड के साथ स्वत: अग्रेषित नहीं करता है।

0

मेरे मामले में यह web.config में बस एक त्रुटि थी।

मैं था:

<endpoint address="http://localhost/WebService/WebOnlineService.asmx" 

यह किया जाना चाहिए था:

<endpoint address="http://localhost:10593/WebService/WebOnlineService.asmx" 

पोर्ट संख्या (: 10,593) पते से लापता था।

0

यह web.config फ़ाइल में एक त्रुटि हो सकती है।

उदाहरण आपके ब्राउज़र में अपने URL खोलें,:

http://localhost:61277/Email.svc 

चेक, अगर आप एक 500 त्रुटि है।

HTTP Error 500.19 - Internal Server Error 

इन वर्गों में त्रुटि के लिए देखो:

2

शायद ज़रुरत पड़े ...
आप SoapUI मॉक सेवा उपयोग कर रहे हैं

कॉन्फ़िग त्रुटि

कॉन्फ़िग फ़ाइल (के रूप में सर्वर), इसे सी # डब्ल्यूसीएफ से कॉल करना:

WCF --> SoapUI MockService 

और इस मामले में आप एक ही त्रुटि हो रही है: SoapUI पर अपने नकली रिस्पांस

The content type text/html; charset=UTF-8 of the response message does not match the content type of the binding (text/xml; charset=utf-8). 

संपादित करें और इसे करने के लिए एक हैडर जोड़ें: enter image description here

मेरी परिदृश्य में, इस समस्या को ठीक ।

+0

मेरी समस्या बिल्कुल ठीक है। समाधान के लिए एक लाख धन्यवाद :) – paulsm4

1

डब्ल्यूसीएफ सीरिव प्रोजेक्ट में यह समस्या System.Web.Mvc.dll के विभिन्न संस्करण के संदर्भ के कारण हो सकती है या कोई अन्य डीएलएल का अलग संस्करण मुद्दा हो सकता है। तो यह DLL के अलग संस्करण

जब मैं का उपयोग

System.Web.Mvc.dll संस्करण 5.2.2.0 की अनुकूलता मुद्दा हो सकता है -> यह thorows त्रुटि सामग्री प्रकार text/html; charset = utf-8 प्रतिक्रिया संदेश

की लेकिन जब मैं

System.Web.Mvc.dll संस्करण का उपयोग 4.0.0.0 या कम -> यही कारण है कि अपने प्रोजेक्ट में काम करता है ठीक और एक की जरूरत नहीं है त्रुटि।

मुझे डीएलएल के इस मुद्दे के इस अलग-अलग संस्करण का कारण पता नहीं है, लेकिन जब मैं डीएलएल की कथन बदलता हूं जो आपके डब्ल्यूसीएफ प्रोजेक्ट के साथ संगत है, यह ठीक काम करता है।

यह त्रुटि तब भी उत्पन्न होती है जब आप अपने डब्ल्यूसीएफ प्रोजेक्ट में अन्य प्रोजेक्ट का संदर्भ जोड़ते हैं और इस संदर्भ प्रोजेक्ट में System.Web.Mvc DLL का अलग संस्करण है या कोई अन्य DLL हो सकता है।

+0

मुझे केवल एक समारोह के लिए पाठ/एचटीएमएल अपवाद मिल रहा है जहां मैं वेब छवि का उपयोग कर अपलोड की गई छवि के आकार को कम कर रहा हूं। – user3217843

0

ब्राउज़ IIS में WCF देखें कि क्या वह जिंदा है और सामान्य रूप से काम करता है,

मेरे मामले में यह है, क्योंकि WCF का भौतिक पथ वे गलत है की कोशिश करो।

संबंधित मुद्दे