पर जेएसओएन डेटा पोस्ट करते समय मैं सी # और डब्ल्यूसीएफ में बनाई गई सेवा में कुछ JSON डेटा भेजने की कोशिश कर रहा हूं।त्रुटि 415 जब डब्ल्यूसीएफ सेवा
Request Header
User-Agent: Fiddler
Host: localhost
Content-Length: 29
Content-Type: application/json; charset=utf-8
Request Body
{sn:"2705", modelCode:1702 }
नीचे सेवा इंटरफ़ेस है: Fiddler में मेरी पोस्ट अनुरोध के रूप में
फ़िडलर इस प्रकार है। यही कारण है कि पोस्ट अनुरोध
[ServiceContract]
public interface IProjectorService
{
[WebInvoke(Method="POST", UriTemplate="projectors", RequestFormat=WebMessageFormat.Json, ResponseFormat=WebMessageFormat.Json)]
[OperationContract]
void RecordBreakdown(Record record);
}
सेवा इंटरफ़ेस के कार्यान्वयन चर तर्क को में पारित लेता है और किसी SQL डाटाबेस को यह डेटा भेजने के लिए हलचल का उपयोग करता है का प्रबंधन करने के WebInvoke विशेषता का उपयोग करता। ,
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true"/>
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5"/>
<httpRuntime targetFramework="4.5"/>
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<protocolMapping>
<add binding="basicHttpsBinding" scheme="https"/>
</protocolMapping>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<directoryBrowse enabled="true"/>
</system.webServer>
</configuration>
Fiddler में जब मैं पर क्लिक करें ":
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)]
public partial class ProjectorService : IProjectorService
{
public void RecordBreakdown(Record record)
{
//ado code to send data to db (ie do record.SerialNumber...
}
}
POCO वस्तु से अधिक पैरामीटर
[DataContract]
public class Record
{
[DataMember]
public string SerialNumber { get; set; }
[DataMember]
public int ModelCode { get; set; }
}
.svc फ़ाइल
<%@ ServiceHost Language="C#" Debug="true" Service="ProjectorService" CodeBehind="~/App_Code/ProjectorService.cs" %>
Web.config प्रतिनिधित्व करने के लिए निष्पादित करें ", मुझे एक त्रुटि 415" असमर्थित मीडिया ty प्राप्त होता है पीई"। विचार की मेरी वर्तमान पंक्ति यह है कि मेरे प्रोजेक्टर सेवा वर्ग में, शायद मुझे एक प्रतिक्रिया वस्तु बनाना चाहिए और 200 कोड वापस भेजना चाहिए ?!
Thats काम किया। मैंने सोचा कि वेब बाध्यकारी स्वचालित रूप से एसवीसी फ़ाइल में फैक्ट्री विधि का उपयोग करके जेनरेट की गई थी (जिसे मैंने वैसे भी शामिल नहीं किया था)। साथ ही साथ इन परिवर्तनों को मुझे 'BodyStyle = WebMessageBodyStyle.Bare' को सेवा विधि में विज्ञापन करने की आवश्यकता थी क्योंकि JSON डेटा किसी अन्य ऑब्जेक्ट में लपेटा नहीं गया था। – beaumondo