Reputation: 53
I have a WCF service that needs to have multiple endpoints (json and SOAP, specifically) to make it compatible with Android and WP7 devices.
With the configuration present in the following file, I can access the service with Google Chrome using the json endpoint, but if I try using the soap endpoint, I can't. Using Fiddler I got 404 error for the address http://liveandesor.web711.discountasp.net/wcf/SightingServiceRest.svc/json, while I got a 400 error Bad Request by using the same addres but with soap at the end.
I tried using the configuration indicated by this tutorial, to no avail.
Why am I doing wrong here? How can I fix this?
Any help would be greatly appreciated. Thanks for your time! :D
Here's the web.config file I'm using:
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<!--Deploy-->
<add name="LiveAndesWCF" connectionString="data source=tcp:sql2k802.discountasp.net;Initial Catalog=SQL2008_832326_liveandes;User ID=SQL2008_832326_liveandes_user;Password=******; MultipleActiveResultSets=true" providerName="System.Data.SqlClient"/>
<add name="LiveAndes" connectionString="data source=tcp:sql2k802.discountasp.net;Initial Catalog=SQL2008_832326_liveandes;User ID=SQL2008_832326_liveandes_user;Password=****; MultipleActiveResultSets=true" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.0"/>
<membership>
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="LiveAndes" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="true" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/"/>
</providers>
</membership>
</system.web>
<appSettings>
<!-- Deploy -->
<add key="mainPathDeployWCF" value="http://liveandesor.web711.discountasp.net/"/>
<add key="mainMachPathDeployWCF" value="e:\web\liveandesor\htdocs"/>
<add key="serverPath" value="e:\\web\\liveandesor\\htdocs"/>
<add key="imageBaseUrl" value="http://liveandesor.web711.discountasp.net/Content/UploadedImages/"/>
<!--<add key="mainMachPath" value="C:\Users\Rul\Documents\Universidad\2011'1\Taller de Especialidad\svn\Desarrollo\WEB\LiveAndesMVC\LiveAndesMVC"/>-->
</appSettings>
<system.serviceModel>
<protocolMapping>
<add scheme="http" binding="wsHttpBinding" />
</protocolMapping>
<services>
<service name="LiveAndesWCF.SightingService">
<endpoint address="soap"
bindingConfiguration="soapBinding"
binding="basicHttpBinding"
contract="LiveAndesWCF.ISightingService"/>
<endpoint address="json"
binding="webHttpBinding"
behaviorConfiguration="jsonBehavior"
contract="LiveAndesWCF.ISightingService"/>
</service>
<service name="LiveAndesWCF.UserService">
<endpoint address="soap"
bindingConfiguration="soapBinding"
binding="basicHttpBinding"
contract="LiveAndesWCF.IUserService"/>
<endpoint address="json"
binding="webHttpBinding"
behaviorConfiguration="jsonBehavior"
contract="LiveAndesWCF.IUserService"/>
</service>
<service name="LiveAndesWCF.UserServiceRest" behaviorConfiguration="MetadataBehavior">
<endpoint address="json"
behaviorConfiguration="WebBehavior"
binding="webHttpBinding"
contract="LiveAndesWCF.IUserServiceRest"/>
</service>
<service name="LiveAndesWCF.SightingServiceRest" behaviorConfiguration="MetadataBehavior">
<endpoint address="soap"
binding="basicHttpBinding"
bindingConfiguration="soapBinding"
contract="LiveAndesWCF.ISightingServiceRest"/>
<endpoint address="json"
behaviorConfiguration="WebBehavior"
binding="webHttpBinding"
contract="LiveAndesWCF.ISightingServiceRest"/>
</service>
<service name="LiveAndesWCF.TestService">
<endpoint address="soap"
binding="basicHttpBinding"
bindingConfiguration="soapBinding"
contract="LiveAndesWCF.ITestService"/>
<endpoint address="json"
binding="webHttpBinding"
behaviorConfiguration="jsonBehavior"
contract="LiveAndesWCF.ITestService"/>
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="soapBinding" maxReceivedMessageSize="99999999" closeTimeout="00:02:00" openTimeout="00:02:00" receiveTimeout="00:10:00" sendTimeout="00:02:00">
<readerQuotas maxArrayLength="76384000" maxStringContentLength="2147483647"/>
<security mode="None"/>
</binding>
</basicHttpBinding>
<webHttpBinding>
<binding maxReceivedMessageSize="99999999" closeTimeout="00:02:00" openTimeout="00:02:00" receiveTimeout="00:10:00" sendTimeout="00:02:00">
<readerQuotas maxArrayLength="76384000" maxStringContentLength="2147483647"/>
</binding>
</webHttpBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<behavior name="jsonBehavior">
<enableWebScript/>
<!--<webHttp/>-->
</behavior>
<behavior name="WebBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
<behavior name="MetadataBehavior">
<serviceMetadata httpGetEnabled="true" httpGetUrl="" />
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
Upvotes: 1
Views: 668
Reputation: 9478
You can either answer this yourself and then mark it as the answer or mark this one.
"Because when I try to use the slsvcutil tool to create the reference with just the json endpoint, all it says is "There are no endpoints compatible with Silverlight 3."
See this question to know what I'm talking about: Bad Request RestSharp Windows Phone 7
Upvotes: 1