2010-11-03 19 views
5

मैं एक WebServiceमेरा कॉलबैक फ़ंक्शन क्यों काम नहीं करता है?

मैं वास्तव में क्या इस लेख

http://viralsarvaiya.wordpress.com/2010/03/23/calling-web-service-from-java-script-in-asp-net-c/

फ़ायरबग की सांत्वना मैं देख सकता था कि मेरी समारोह मार डाला गया था को देखते हुए में वर्णन किया गया किया था करने के लिए कुछ कॉल करने के लिए कोशिश कर रहा हूँ और अपेक्षित डेटा लौटाया, लेकिन मेरे कॉलबैक फ़ंक्शंस (ऑनकंपलेट, ऑनरर, ऑनटाइमऑट) कभी निष्पादित नहीं होते हैं।

क्या गलत है?

यहाँ कोड (लेख का एक ही कोड) Service.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Services; 

[WebService(Namespace = "http://Localhost...xys/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
// [System.Web.Script.Services.ScriptService] 

[System.Web.Script.Services.ScriptService()] 

public class Service : System.Web.Services.WebService 
{ 
    public Service() { 

    //Uncomment the following line if using designed components 
    //InitializeComponent(); 
    } 

    [WebMethod] 
    public string HelloWorld(string strNoOfData) 
    { 
     return strNoOfData; 
    } 
} 

Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 

<!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 type="text/javascript" language="javascript"> 
function CallService() { 
    Service.HelloWorld(document.getElementById('Textbox1').value, 
     OnComplete, OnError, OnTimeOut); 
} 

function OnComplete(Text) { 
    alert(Text); 
} 

function OnTimeOut(arg) { 
    alert("timeOut has occured"); 
} 

function OnError(arg) { 
    alert("error has occured: " + arg._message); 
} 
</script> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div> 
<asp:ScriptManager ID="ScriptManager1" runat="server"> 
    <Services> 
     <asp:ServiceReference Path="~/Service.asmx" /> 
    </Services> 
</asp:ScriptManager> 

<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server"> 
<ContentTemplate> 
<fieldset> 
<asp:TextBox ID="Textbox1" runat="server"></asp:TextBox> 
<br /> 
<asp:Button ID="Button1" runat="server" Text="Call Service" OnClientClick="CallService()" /> 
</fieldset> 
</ContentTemplate> 
</asp:UpdatePanel> 
</div> 
</form> 
</body> 
</html> 
+0

आप अपने कोड यहाँ पोस्ट कृपया कर सकते हैं? जो इस मुद्दे को डीबग करने में मदद कर सकता है। –

+0

कोड वास्तव में आलेख का कोड – Ewerton

+0

है, मैंने आपके सटीक कोड का उपयोग किया, कॉलबैक अपेक्षित के रूप में बुलाया गया। एकमात्र चीज मैंने देखा है कि आप 'userContext' पैरामीटर के स्थान पर 'ऑनटाइमऑट' पास कर रहे हैं, अपने सेवा संदर्भ में 'इनलाइनस्क्रिप्ट =" सत्य "जोड़ने का प्रयास करें, फिर स्रोत देखें और जेनरेट की गई सेवा स्क्रिप्ट की जांच करें। –

उत्तर

1

समस्या, परियोजना प्रकार था यह WebApplication में काम करता है, वेबसाइटों में नहीं

+1

खुशी है कि आपको पता चला। इसके अलावा, आपको एएसएमएक्स सेवाओं से दूर जाना चाहिए और डब्ल्यूसीएफ का उपयोग शुरू करना चाहिए। –

1

इम एक वीबी पुरुष ज्यादातर तो ....

है क्रम में एक समय में कोशिश करें।

सबसे पहले देखें कि क्या आप वास्तव में टेक्स्टबॉक्स का चयन कर रहे हैं, मुझे शक है। क्लाइंट आईडीमोड स्थिर होने के लिए सेट करें।

दूसरा कोशिश [WebMethod(), ScriptMethod(ResponseFormat:=ResponseFormat.Json)]

तीसरा विधि स्थिर बनाने .. उफ़ आभासी और वर्ग भी।

संबंधित मुद्दे