Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 5054
  • Last Modified:

Really simple WCF Service using JQuery keep getting error 415 unsupported media type

I wrote a very simple WCF service with one operation contract that returns a list of points. I then wanted to use JQuery to consume the service and get the list of points on to a web page.  I was following Rick Strahl's blog: http://www.west-wind.com/weblog/posts/324917.aspx.

I keep geeting the error: 415 unsupported media type

Please could you let me know where I'm going wrong. Thanks!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.ServiceModel.Web;
 
namespace Contracts
{
    [ServiceContract(Name = "TestService", Namespace = "Contracts")]
    public interface ITestService
    {
        [OperationContract]
        [WebInvoke(
            Method = "POST", 
            BodyStyle = WebMessageBodyStyle.Wrapped, 
            ResponseFormat = WebMessageFormat.Json)]
        List<Point> Search();
    }
}
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
 
namespace Contracts
{
    [DataContract]
    public class Point
    {
        [DataMember]
        public double X { get; set; }
        [DataMember]
        public double Y { get; set; }
    }
}
 
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
    <script type="text/javascript" src="http://www.json.org/json2.js"></script>
 
        function Run() {
            var url = "http://localhost:1436/services/testservice.svc/Search";
            var json = JSON.stringify("");
            
            $.ajax({
                url: url,
                data: json,
                type: "POST",
                processData: false,
                contentType: "application/json",
                timeout: 10000,
                dataType: "text",
                success: function(result) { alert("Success"); },
                error: function(result) { alert("Error"); }
            });           
        }

Open in new window

0
dnoxs
Asked:
dnoxs
1 Solution
 
dnoxsAuthor Commented:
Figured it out. I had the incorrect web config it should have looked as follows:
	<system.serviceModel>
		<behaviors>
			<endpointBehaviors>
				<behavior name="WebBehavior">
					<webHttp />
				</behavior>
			</endpointBehaviors>			
			<serviceBehaviors>
				<behavior name="Portal.Services.TestServiceBehavior">
					<serviceMetadata httpGetEnabled="true" httpGetUrl="" />
					<serviceDebug includeExceptionDetailInFaults="false" />
				</behavior>
			</serviceBehaviors>
		</behaviors>
		<services>
			<service behaviorConfiguration="Portal.Services.TestServiceBehavior"
			 name="Portal.Services.TestService">
				<endpoint address="" binding="webHttpBinding" behaviorConfiguration="WebBehavior" contract="Contracts.ITestService">
					<identity>
						<dns value="localhost" />
					</identity>
				</endpoint>
				<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
			</service>
		</services>
	</system.serviceModel>	

Open in new window

0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now