PDA

View Full Version : AJAX Enabled Web Service


lars007
08-06-2008, 02:47 AM
As a test I built a really site to try to nail down the problem but cannot.

I followed the exact steps as stated in (just different service name and method implementation):

http://msdn.microsoft.com/en-us/library/bb924552.aspx

It works fine running locally but when I deploy (all files) to my Discountasp.net site (www.cheryllaakes.com/gallery.aspx (http://www.cheryllaakes.com/gallery.aspx), /gallerysearch.svc) it does not work.

Errors:

When I click on the button to make the actual ajax call to the web service I get a client-side javascript error stating that the "Woolgal" (the namespace of the service) is undefined.

Also an error when I try to point the browser at the .svc file.

Again everything works fine when run locally.

Any suggestions?

For reference:

GallerySearch.svc



<%@ ServiceHost Language="C#" Debug="true" Service="Woolgal.GallerySearch" CodeBehind="GallerySearch.svc.cs" %>
GallerySearch.svc.cs



using System;


using System.Linq;


using System.Runtime.Serialization;


using System.ServiceModel;


using System.ServiceModel.Activation;


using System.ServiceModel.Web;


namespace Woolgal


{


[ServiceContract(Namespace = "Woolgal")]


[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]


public class GallerySearch


{


// Add [WebGet] attribute to use HTTP GET


[OperationContract]


public int GetSecond()


{


// Add your operation implementation here


return DateTime.Now.Second;


}


// Add more operations here and mark them with [OperationContract]


}


}
Gallery.aspx



<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Gallery.aspx.cs" Inherits="Woolgal.Gallery" %>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml" >


<head runat="server">


<title></title>


<script language="javascript" type="text/javascript">


// <!CDATA[


function Button1_onclick() {


var service = new Woolgal.GallerySearch();


service.GetSecond(onSuccess, null, null);


}


function onSuccess(result) {


alert(result);


}


// ]]>


</script>


</head>





<form id="form1" runat="server">


<div>





<asp:ScriptManager ID="ScriptManagerGallerySearch" runat="server">


<Services>


<asp:ServiceReference Path="GallerySearch.svc" />


</Services>


</asp:ScriptManager>





</div>


</form>


<p>


<input id="Button1" type="button" value="button" onclick="return Button1_onclick()" /></p>


</body>


</html>

[b]Web.config







<configuration>





<configSections>


<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectio nGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">


<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">


<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHa ndlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>


<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSecti onGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">


<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializatio nSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />


<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSe ction, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />


<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationSe rviceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />


<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSecti on, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />


</sectionGroup>


</sectionGroup>


</sectionGroup>


</configSections>





<appSettings/>


<connectionStrings/>





<system.web>


<!--


Set compilation debug="true" to insert debugging


symbols into the compiled page. Because this


affects performance, set this value to true only


during development.


-->


<compilation debug="false">


<assemblies>


<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>


<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>


<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>


<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>


</assemblies>


</compilation>


<!--


The <authentication> section enables configuration


of the security authentication mode used by


ASP.NET to identify an incoming user.


-->


<authentication mode="Windows" />


<!--


The <customErrors> section enables configuration


of what to do if/when an unhandled error occurs


during the execution of a request. Specifically,


it enables developers to configure html error pages


to be displayed in place of a error stack trace.


<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">


<error statusCode="403" redirect="NoAccess.htm" />


<error statusCode="404" redirect="FileNotFound.htm" />


</customErrors>


-->


<pages>


<controls>


<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>


<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>


</controls>


</pages>


<httpHandlers>


<remove verb="*" path="*.asmx"/>


<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>


<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>


<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>


</httpHandlers>


<httpModules>


<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>


</httpModules>


</system.web>


<system.codedom>


<compilers>


<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4"


type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">


<providerOption name="CompilerVersion" value="v3.5"/>


<providerOption name="WarnAsError" value="false"/>


</compiler>


</compilers>


</system.codedom>





<!--


The system.webServer section is required for running ASP.NET AJAX under Internet


Information Services 7.0. It is not necessary for previous version of IIS.


-->


<system.webServer>


<validation validateIntegratedModeConfiguration="false"/>


<modules>


<remove name="ScriptModule" />


<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>


</modules>


<handlers>


<remove name="WebServiceHandlerFactory-Integrated"/>


<remove name="ScriptHandlerFactory" />


<remove name="ScriptHandlerFactoryAppServices" />


<remove name="ScriptResource" />


<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode"


type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>


<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode"


type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>


<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />


</handlers>


</system.webServer>


<runtime>


<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">


<dependentAssembly>


<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>


[b]


</dependentAssembly>


<dependentAssembly>


<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>


[b]


</dependentAssembly>


</assemblyBinding>


</runtime>


<system.serviceModel>


[b]


<endpointBehaviors>


<behavior name="<FONT c

David
04-16-2009, 01:17 PM
I am getting the same error. Have you been able to fix the problem without rewriting the ajax part?