Raty web service

Topics: Standard packages, Troubleshooting
Sep 12, 2011 at 11:03 PM

I've installed the Raty package and it shows up on the page, but when calling the Web Service (raty.asmx/post) I'm getting a  404 file not found.

Is there something special that needs to be added to a config file to let this work?

 

Note, I can bring up the RATY.asmx file no problem, it's just calling the "post" method doesn't work.

Coordinator
Sep 13, 2011 at 6:25 AM

Hello,

What version of C1 do you use? Is your site running in sub-folder?

Sep 13, 2011 at 6:30 AM

2.1.3 Beta 2 and it's not running in a sub-folder. The web service on the root is accessed no problem. It's the method that is not. I suspect that it has to do with routing. See for yourself here.

I'm thinking of modifying the function tomorrow and replacing raty.asmx/rate with raty.asmx?op=rate to see if that changes anything but before I do, I thought I'd post here... as someone else might go through the same thing.

Coordinator
Sep 13, 2011 at 6:52 AM

There is file \Frontend\Composite\Community\Raty\Scripts\jquery.raty.min.js and there you can find function rate() and it uses jQuery ajax() method to do  "post"

$.ajax({
        type: "post",
        url: "/Raty.asmx/Rate",

and the URL should be in next format : {service.asmx}/{method_name}  = "/Raty.asmx/Rate"

I works for me, but I don't know why it doesn't work  for you.  Try to remove first "/" in the URL parameter - url: "Raty.asmx/Rate"

Sep 14, 2011 at 8:06 AM

I don't know why it doesn't work. It's strange. "raty.asmx" works fine... However, I DID find something odd in the Web.Config:

<handlers>
	   <add name="Wildcard ASP.NET mapping" preCondition="classicMode,runtimeVersionv4.0,bitness32" path="*" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" />
	   <add name="Wildcard ASP.NET mapping (x64)" preCondition="classicMode,runtimeVersionv4.0,bitness64" path="*" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" />
	   <add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    </handlers>
Could those entries be the issue? Are they used by Composite? I suspect they're legacy, left over from testing or an upgrade.

I also came across this page and I'm not sure if any code needs to be in place: http://www.sitefinity.com/devnet/forums/sitefinity-3-x/set-up-installation/404-responses-from-admin-services-asmx-services.aspx I'm running IIS7 in integrated mode.

Sep 14, 2011 at 8:33 AM

those lines are fine and are introduced with the new Url Routing and extensions less mechanisms in 2.1.3

Coordinator
Sep 14, 2011 at 8:36 AM

Try the solution to add handler mapping in your web.config file:

 <handlers>
      <add verb="*" path="*.asmx" name="asmx" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</handlers>
Sep 14, 2011 at 6:22 PM

Thanks. I did that this morning when I got in (didn't want to do it through VPN) and it works. Is this handler added by default usually in a fresh 2.1.3 installation? Maybe because I upgraded, it didn't get carried through. It all works now!

Coordinator
Sep 15, 2011 at 6:43 AM

By default this handler mapping should be inherited form general IIS web server settings.