AJAX :: PageMethods Not Getting Invoked?
Mar 28, 2011I have defined a Shared Function in the code behind and a javascript function to call the webmethod. Also, I have EnablePageMethogs set to true in ScriptManager.
View 22 RepliesI have defined a Shared Function in the code behind and a javascript function to call the webmethod. Also, I have EnablePageMethogs set to true in ScriptManager.
View 22 RepliesI need to invoke a long running task from an ASP.NET page, and allow the user to view the tasks progress as it executes.
In my current case I want to import data from a series of data files into a database, but this involves a fair amount of processing. I would like the user to see how far through the files the task is, and any problems encountered along the way.
Due to limited processing resources I would like to queue the requests for this service.
I have recently looked at Windows Workflow and wondered if it might offer a solution?
I am thinking of a solution that might look like:
ASP.NET AJAX page -> WCF Service -> MSMQ -> Workflow Service *or* Windows Service
I use ASP.NET Ajax in my web site and I am monitoring the HTTP requests per each page. I am surprised by the excessive call of ScriptResource.axd with different query string variables. I am pasting a sample of HTTP trace below. The call for ScriptResource.axd take lots time percentage out of total response time. Is this by design or there is something wrong with my AJAX configuration in web.config?
[Code]....
Actually it is degrading the performance of the application. And the user experience becoming very poor in case of lower bandwidth.
Why Ajax pagemethods are static?
View 1 RepliesI wrote a code to call some event...
[Code]....
and
[Code]....
js calls this code and I get object reference not set to an instance of an object
Ran into a bit of problem when using PageMethods when calling a webmethod in the code-behind. My markup page has a radgrid which gets populated via the objectdatasource.Pagemethods works and returns data as expected when the objectdatasource binds the radgrid with some data but not when the objectdatasource returns nothing, i.e. radgrid is empty. PageMethods call has got nothing to do with the objectdatasource, I'm simply using its output to build a list of checkboxes dynamically on the client side using Javascript. And this is how my code snippets looks like:Markup page:
<script type="text/javascript">
function CallGetARInvoices(src,dest)
{
[code]...
One reason we currently use UpdatePanels for doing our AJAX is because our BL and DA layers pass around the Page.User.Identity for authentication.
Is there a way to access this?
I am creating a website in asp.net its a very big site about 250 pages and with a big sql database. I am confused as which ajax method i should follow. There are three options.
1. ASP.NET UpdatePanels -: Simple to use but causes a lots of uneccessary request and viewstate. I want my pages to open as quick as possible.
2.ICallback-: Causes less request and renders the page quickly. But security concerns and viewstate are there.
3.Page Methods with jQuery-: No Security anyone can quickly hack the parameters passed using "POST" mehtod.
I am using an AJAX dropdownlist control with two dropdownlist. Instead of using a webservice to populate the data, I used the pagemethod to populate. My problem is the second droplist won't populate. I get a server error, 500 in the droplist. The first droplist populates fine.
BUT here's the real kicker. If I reverse the order of the public static function such that GetHelloList2 comes BEFORE GetHelloList1 in the code, then the GetHelloList2 works ...... it just seems like it is only firing one pagemethod event and allowign only one.
[URL]
Since last week I've had a really odd issue with PageMethods, the forms authentication cookie, and the back button which i've never seen before.
Essentially, I have a 'home page' which on document.ready (using jQuery), loads some data through PageMethods, and then renders a list - from which you can click through to a details page about the item. In general use, it works fine. However, using the back button after clicking through (ie: going back to the home page), it throws a PageMethods error. The browser's 'authentication required' prompt appears, and if you click cancel, the server returns a 401. The error returned by PageMethods on the client side is 'authentication failed'.
After inspecting the request in Fiddler, the forms authentication cookie isn't sent with the request, which would explain why it is happening. My fiddler entry for the request looks like this:
[Code]....
I have tried code, but there is error...
Compilation Error:
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. Compiler Error Message: CS1525: Invalid expression term ')'
Source Error:
Line 8: <script type = "text/javascript">
Line 9: function ShowAvailability() {
Line 10: PageMethods.CheckUserName(document.getElementById("<%=txtUserName.LoginID%%>").value, OnSuccess); Line 11: }
Line 12: function OnSuccess(response) {
I have a project that uses PageMethods to call functions on the server. The server functions (written in C#) return the values as array of strings, without doing any kind of serialization and in the client side (from Js) the accessing of the return values is by using static variable called arguments. I found that sometimes for some users (cases are not repro) sometimes an exception occured
"WebServiceFailedException the server method 'Foo' returned invalid data. the 'd' property is missing from JSON."
Some searching on google I found that people are serializing the return values using DataContractJsonSerializer class and in js accessing the return value using one of the callback function Example:
function OnRequestComplete(result,
userContext, methodName) {
var Person = eval('(' + result + ')');
alert(Person.Forename);
alert(Person.Surname); }
So is the first technique is correct? or what?
P.S:
the function on the server is defined on the default.aspx.cs file as follows:
[System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()]
public static string[] Foo(string s);
from the client side the calling is as follows
PageMethods.Foo("value",OnSuccess);
Also all the users have the same browser version (IE8)
I have an ASP.Net page with some static methods that I access from the client side using AJAX and the PageMethods capability of the ScriptManager control. The web site has forms authentication setup.My problem is that when the user is not signed in, and makes an action that calls one of the page methods, the operation fails and the failure handler is called as expected but the error object has the status code 500 (internal server error), while it was expected to be 401 (not authorized), because it's the forms authentication module who interrupted the request.Even when I write code like this in the service method:
[Code]....
I also get the status code 500, and an indication of a ThreadAbortException (because of Response.End) in the failure handler. It appears that the handler that carries out service methods calls consider anything that interrupts the execution of the method "an internal server error" regardless of the cause.
Now what should I do if I want to provide a message saying "You are not logged in" to the user, or even redirect him to the login page, while I can't distinguish between the several errors that may occur because I always get status code of 500.
I am using ASP.net with WebMethods to show data to the customer and save data entered by the customer.
My current framework uses javascript to create an xml with all of the values of all the html elements in de "div" (or other element). This xml is converted to a string and send to the webserver using PageMethods.
When I receive this xml (as a string), I parse it with my own XmlDataParser which does some security checks.
I need to parse the xml to an XmlDataParser in every PageMethod I use, and I also need to catch different exceptions (like exceptions that are thrown when data is validated) to show them to the user (=> The reason why is explained in one of my previous posts: [URL]
I wonder if it is possible to write a wrapper around the WebMethod, so I can parse the xml to the XmlDataParser in this wrapper, and pass it on to the code behind, and process exceptions that occur in the code behind?
i write a page method and some sort of javascript to work with that method, everything fine in any browser but firefox!
[Code]....
<input id="offcheckcid" type="button" value="بررسی کلوب آی دی" onclick="CheckCloobID('offline');" style="color: Black;"/>
function CheckCloobID(sender) {
var id;
var email;
var button;
id = $get("ctl00_ctl00_cph1_cph1_offcid");
email = $get("ctl00_ctl00_cph1_cph1_offcpe");
button = $get("offcheckcid");
button.value = "کمی تامل نمائید...";
button.disabled = true;
id.disabled = true;
email.disabled = true;
PageMethods.CheckCloobID(id.value, email.value, 'offline', OnSuccess, OnTimeout, OnFailure);
}
function OnSuccess(result) {
var results = result.split("#", 2);
if (results[0] == "Accepted") {
var price = $get("offcut");
price.innerText = "30,000- ریال";
var total = $get("offtotal");
total.innerText = "570,000 ریال";
var button = $get("offcheckcid");
button.value = "تائید شد";
}
else {
alert("...کلوب آی دی و ایمیل محرمانه وارد شده وجود ندارد یا قبلا تخفیف گرفته است");
ActivateButtons();
}
}
the problem: onsuccess event did not work in firefox, no error message displayed in firebug...
i have used PageMethods to access the server side functions in javascript , but now my problem is that with pagemethods your controls will not go throught the full page lifecyle and these leads me to have "Object not set for an instance of an object" error. Now can someone come with a differnt approach without using pagemethods. What i want is to call a server side function , i dont want to pass any parameters to it
View 6 RepliesI am using PageMethods in my pages, and we have some requirement in which some maintenance process happened in certain time span, so in that time we set on DB flag consider as True False, I have written my code in Global.asax where in application_AcquireRequestState(...,...) Method I am checking the flag and depanding upon the flag I am redirecting my Page to one Maintenance dummy page, so application_AcquireRequestState() method working properly when page get postback or I am using thru any server control, but when I am using Asynchronous call using PageMethods in application_AcquireRequestState I am getting exception, Can anyone solve my problem I am using VB.NET.
[Code]....
I am designing an ASP.NET web application (.NET 4.0) which basically has a page that should interact with the code behind every 1-2 seconds (Using Client callbacks or PageMethods via ScriptManager or jQuery.ajax) It'll be hosted on an intranet, so a 1-2 second refresh rate is kind of reasonable.
How can I make the page to access the web service/pagemthod in the code behind in a timeply manner (e.g. every 1 second). Should I use a javascript timer (I'm not familiar with javascrip very much)?
Although the site is hosted on an intranet, but I still need to implement a good approach to reach the desired refresh rate. the amount of data being transfered is about 1KB in each interaction. What are your recommendations on my design regarding this? (using callbacks or ScriptManager or jQuery.ajax,...
is it possible to call a custom method or class before accessing webmethod from pageMethods ?
View 2 RepliesSince last week I've had a really odd issue with PageMethods and the back button which i've never seen before. Essentially, I have a 'home page' which on document.ready (using Query), loads some data through PageMethods, and then renders a list - from which you can click through to a details page about the item. In general use, it works fine. However, using the back button after clicking through (ie: going back to the home page), it throws a PageMethods error. The browser's 'authentication required' prompt appears, and if you click cancel, the server returns a 404. The error returned by PageMethods on the client side is 'authentication failed'.
Just FYI, the application is using ASP.NET forms authentication. The weird thing is, this happens as soon as you click the link and click back. It's not like the authentication cookie has expired or anything, and if you click cancel when the prompt appears and refresh the page, it works fine. I just can't work out what is going on. I've tried disabling caching on the page [as I thought it was something to down with some browsers' caches of the DOM), but the same thing happens. One workaround i've had is to redirect the page to itself if the PageMethods error is 'authentication failed', which does work - but only when you cancel the authentication prompt. Obviously the prompt appears, which is not ideal. I don't understand it, and the user is clearly authenticated. Does anyone have any idea which might be happening? It's happening in Chrome, Firefox, and IE.
I found this Article from link : [URL] .... that explains how to call server-side Method from javascript,
I used your code, my server-side function is static, public, and also I added
[System.Web.Services.WebMethod]
and
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
I am calling server side methids from client side using PageMethods. Can those methods return value back to client side. If yes then how and if no then how can that be achieved? refer to my code below.
function getValuesFromPSS(s,e)
{
debugger;
[Code]....
I am using PageMethods to send a few parameters to a webmethod in my codebehind. The method runs a stored procedure and uses the results to build a string that I am returning from the method.
Everything works fine until I try to include too many records in my results..
Once the results I am trying to return hit about 70K, the pagemethod times out even though it is taking about 1 second to process the results.
Is there a buffer limit or limit on the size or results returned from a pagemethod and if so, where can this be set or changed?
Is there a setting in the web.config somewhere to handle pagemethod buffer size?
Are all loaded on web app startup or only when theyre invoked (i.e., when their code is used)?
View 1 RepliesI am not sure what is going on but even though I am invoking a different controller with action a particular FooController's Index action is being invoked all the time. The Global.asax file has setup the FooController to be the default controller.
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "FooController", action = "SomeAction", id = UrlParameter.Optional } // Parameter defaults
);
}