WCF Vs ASPX Webmethods Vs ASMX Webmethods?
Dec 3, 2010
The intent is to create a set of web services that people can reuse. These services mostly interact with a backend DB creating, retreiving and processing data. We want to expose services so that people can use to create data mashups and other applications.End users are webpages that can be within our domain or outside our domain. For pages outside the domain we plan to release widgets that would be configured to retreive and display the data.
One requirement - application should be extremely scalable in terms of the number of users it can handle.Our code base is .net and we are looking at ASPX webmethods (or ASHX), ASMX webmethods and WCF (starting to read up on WCF). In terms of security/access I found that maintaining sessionid, memberships is doable in all three. WCF seems a bit complicated to setup. I could not immediately see the value of asmx when we can get all done just using a webmethod in aspx (with a little tweaking). Also, assuming that with the ASP.NET MVC2 I might be able to get clean urls as well for these webmethods.QuestionsWhich one will be the most effective in terms of performance and scalability? Any reason why I should choose WCF or ASMX?
EDIT I kind of understand that WCF is the way to go. Just to understand the evolution of the technologies it would be good if someone can throw light on why a aspx webmethod is different from an asmx when similar things (apart from discovery) can be accomplished by both. The aspx webmethods can be made to return data in other formats (plaintext, json). Also, it seems that we can build restful services using ashx.
View 2 Replies
Similar Messages:
Feb 17, 2010
I'm verifying e-mail address using WebMethods, however, I'm getting a 404 not found (error console) saying that it can't find activities.aspx.aspx. I am using URL-Rewriting, but I tried adding a detect for 'activities.aspx.aspx' and redirect back to .activities.aspx' but it didn't do anything.
Here is the error:
[code]....
View 3 Replies
Mar 16, 2011
The default behavior of a [WebMethod] attributed static method on an aspx page is to return the error to the caller. We are accessing these methods using json, and the only way we have found of capturing exceptions is either a try/catch in every webmethod on the site or using a javascript callback with the error (which has the unacceptable downside of exposing the error to the client).
Is there any way to globally handle these exceptions using the HealthMonitoring setup in ASP.NET?
View 1 Replies
Dec 5, 2010
calling a SAP Webmethod using ASP.NET application.
View 1 Replies
May 15, 2010
I want to reduce postback in one of my application page and use ajax instead. I used the WebMethod to do so.. I have a static WebMethod that needs to access the session variables and modify. and on the client side, i am calling this method using jQuery. I tried accessing the session as follows:
[WebMethod]
public static void TestWebMethod()
{
[code]...
The values are displayed correctly and seems to work.. but i would like to know if this practice is allowed as the method is a static methods and would like to know how it will behave if multiple people access the application.I would also like to know how developers do these kind of tasks in ASP if this is not the right method.
View 1 Replies
Nov 22, 2010
I have a webservice (using asp.net VS 2008).If I have two webmethods with same name but different input parameters and same output parameters. Just like given below. Can't I have two webmethods with same name with different parameters?
Code:
[WebMethod]
public Portfolio GenerateData(string As_of_Date, bool PortfolioLoadfromArchive)
{
Portfolio aPortfolio = null;
[code]...
Both TestProj.WebServices.Portfolio GenerateData(System.String) and TestProj.WebServices.Portfolio GenerateData(System.String, Boolean) use the message name 'GenerateData'. Use the MessageName property of the WebMethod custom attribute to specify unique message names for the methods.
View 10 Replies
Jan 25, 2011
I am using PageMethods in asp.net. In code behind i have written a method which should call a javascript function for each loop & should come back & continue the loop.Is it possible?
[WebMethod]
public static void GetStatus()
{
for (int i = 0; i < 10; i++)
{
System.Threading.Thread.Sleep(500);
//Call javascript function
}
}
View 2 Replies
Apr 24, 2010
I have a cascading dropdown (3 of them) Type, Categories and Sub Categories. Type loads first and upon selection of Type, Category load and selection of Category, Sub Category loads. Also i have 2 buttons, "Add Category" and "Add Sub Category" Upon clicking on these buttons, i call a JQuery Modal Form to add them. I use Webmethod in code behind to add them to database
This works perfectly in ASPX page.
Since I need use this in 3-4 pages, i thought of making the above as User control (ASCX). When i try to use this in a webpage, the webmethods in ASCX don't get called.
View 2 Replies
Jan 11, 2010
I couldn't think of a decent title, so let me first apologize for that. I have a WebService (call it A) written for my app so I can take advantage of ASP.NET 3.5 AJAX features. I use the generated JavaScript proxy to make AJAX calls.As a side effect, WebService A is exposed for anyone to add as a reference to another project, which is great, except I don't want certain WebMethods to be available to external applications (in the same domain, BTW).So I've got two questions:Is there a way to control the exposure of WebMethods in WebService A?
If there isn't, I'm thinking I'll just add a separate WebService (B) that exposes the WebMethods I need from WebService A. But then,How can I prevent other applications from referencing WebService A while still allowing the application it originates in to access it?If that's not possible, I'm not really worried about it. The apps are all intranet-only, I just don't want the WebServices to be abused.Also, there is a similar question here already without any good anwers. The asker describes almost the same situation I'm in: [URL]
View 4 Replies
Apr 6, 2010
I'm generating a file on the server which takes some time. For this, I have a hidden iframe which I then set the .src attribute to an aspx file i.e iframe.src = "/downloadFile.aspx"While this is taking place, I'd like to have a call to a web service return the progress. To do this, I thought I could use window.setInterval or window.setTimeout but Javascript seems to be blocked as soon as I set the iframe src attribute.Does anyone know how to get around this or perhaps try a different approach?I have also tried handlers, but the request never gets to the server so I'm assuming is a browser/javascript issue.
//Function that gets the file
function GetFile() {
setTimeout(GetProgress, 1000);
var iframe = document.createElement("iframe");
[code]...
View 2 Replies
Jun 22, 2010
I have what should be a relatively simple task that's frankly got me stumped. I've researched it until my brain is fried, and now I'm puntingHere's the scenario:I have an ASPX page (Q2.aspx) that is decorated with the WebService,WebServiceBinding, and ScriptService attributes. That page contains a method, GetAllContacts, that is decorated with the WebMethodattribute and returns a string containing JSON data. (For what it's worth, the pageitself contains no other controls or functionality.)I have an HTML page that contains JavaScript which uses the XmlHttpRequestobject to invoke the GetAllContacts WebMethod on the ASPX page and transformthe JSON data into an HTML table. I have verified that my Web.Config file contains the appropriate protocol handlersfor HttpGet and HttpPut in the WebServices section under System.Web.webServices.
I have verified that my Web.Config file contains the ScriptModule entry under theSystem.webServer.modules section, and that it matches the appropriate documentation.
However, when I view the HTML page in a browser, the following occur:The web request goes through, but the results are for the unprocessed HTML from the ASPX page.The GetAllContacts method is never invoked, as evidenced by setting a breakpoint in its code.The code to invoke the Web service, however, is invoked, and the JavaScript callbackfunction that is invoked upon request completion is properly invoked.
It appears that the JavaScript code is largely set up correctly, but for some reason that is completely escaping me at this point, the HTML page will simply not execute the WebMethod on the ASPX page, and simply returns the page as though it were a plain HTML GET request. Clearly, an HTML document can't be evaluated by JavaScript's eval function, which brings me to my problem. (Also note that the JSON data appears nowhere in the HTML that's returned.)I am, frankly, baffled. I've looked at dozens of Microsoft articles, StackOverflow posts, CodeProject articles, and who knows what else. My code looks like it's okay. But I know better. I'm missing something simple, stupid, and obvious. I just need someone to point it out to me.Below you'll find the ASPX page code and the HTML code, in the hope that they'll shed some light.ASPX Code
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Q2.aspx.cs" Inherits="Satuit.Q2" enablesessionstate="False" %>
<html>
<body>
[code]...
View 1 Replies
Sep 14, 2010
I have the following code to store session variable in one webmethod and retrieve it in other webmethod but the value displays null when i try to retrieve it.
[WebMethod(EnableSession = true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public bool SubmitList1(string businessname )
{
Session["Company_Name"] = businessname;
SqlConnection con = new SqlConnection();
.......
.........
.........
}
This will be my second webmethod where i am trying to retrieve the session variable
[WebMethod(EnableSession = true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public bool addresslisting()
{
string companyname = (string)Session["Company_Name"];// this particular value is displaying null
......
........
}
View 2 Replies
Dec 19, 2011
I have some code that is throwing unhandled DivideByZero exceptions in a WebMethod. These exceptions are not being caught by the global logging in Application_Error in global.asax. why exceptions thrown from a WebMethod are not handled by Application_Error?
View 3 Replies
Sep 9, 2010
My scenario is i have 4 tabs, under every tab there are five cascadded combo. So for page load itself it calling webservice at last and populate all parent cascaded dropdowns in all the four tabs.
now I have made changes but still now its not working. By defeault [ScriptMethod(UseHttpGet = false)], so i made it [ScriptMethod(UseHttpGet = true)]. now on tab change i added that function and it is calling the web methods when changing the tab. But after the loading its again call the webservice and this time as the get is true so its not getting any value. And in the dropdown its showing "error 12030".
View 1 Replies
Feb 9, 2011
In our project WCF service is acting as our BLL.
i had scenario where i had to fill list of object class without knowing its type see code:
Added contract
[OperationContract]
dynamic GetReferenceTableData(string tableName);
method in service:
public dynamic GetReferenceTableData(string tableName)
{
try
{
dynamic tableData = ReferenceTableDAL.GetReferenceTableData(tableName);
return tableData;
}
catch (Exception ex)
{
throw;
}
}
method at DAL(ReferenceTableDAL):
public static dynamic GetReferenceTableData(string tableName)
{
Database db = DatabaseFactory.CreateDatabase(Flags.ConnectionStringKey);
DbCommand dbCommand = db.GetStoredProcCommand("USP_GETTABLEDATA");
dynamic objDynamic = null;
if (tableName.ToLower() == "a")
{
objDynamic = new List<A>();
}
else if (tableName.ToLower() == "b")
{
objDynamic = new List<B>();
}
else if (tableName.ToLower() == "c")
{
objDynamic = new List<C>();
}
try
{
db.DiscoverParameters(dbCommand);
dbCommand.Parameters["IN_TABLENAME"].Value = tableName;
DataSet dsTableData = db.ExecuteDataSet(dbCommand);
if (tableName.ToLower() == "a")
{
foreach (DataRow dataRow in dsTableData.Tables[0].Rows)
{
objDynamic.Add((A)dataRow);
}
}
else if (tableName.ToLower() == "b")
{
foreach (DataRow dataRow in dsTableData.Tables[0].Rows)
{
objDynamic.Add((B)dataRow);
}
}
else if (tableName.ToLower() == "c")
{
foreach (DataRow dataRow in dsTableData.Tables[0].Rows)
{
objDynamic.Add((C)dataRow);
}
}
}
catch (Exception ex)
{
throw;
}
return objDynamic;
}
@ Aspx
try
{
using (DataServiceRef.DataServiceClient petService = new DataServiceRef.DataServiceClient())
{
dynamic tableData = petService.GetReferenceTableData(tableName);
//tableData is null ,exception
}
}
catch (Exception ex)
{
throw;
}
There is no exception at dal or service end when i debug list gets filled ok but when returns to aspx error at aspx(no exception gets caught at @ service) but exception at aspx i.e:
Message:The underlying connection was closed: The connection was closed unexpectedly.
Stack Trace: at System.Net.HttpWebRequest.GetResponse()
at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
View 3 Replies
Nov 3, 2010
I have spent a couple of days on this one. I have an ASP.NET website that has Linkbuttons on
the Default.aspx page.. I added a WebService to the Website because later on the WebService will
subscribe to a Provider(Feed) of News, Sports and Weather and things like that. So when a Linkbutton
on the Default.aspx page is clicked it will connect to the link in the WebService which will load the News,
Sports or Weather onto the Default.aspx web page.
The problem is I can't get the LinkButton to execute the Link in the WebService. The link will call the page up
to where you see all of the Web References. But then if you want to execute one of those references you
have to click its link and the Invoke button that will follow. My questioh is how can the link on my Default.aspx
page execute the link in the WebService. Now I changed the LinkButton into an <a href> but I still can't execute
the link in the WebServices. I always use www.Microsoft.com as the link when testing and I wasn't sure about the return type
so I put "void" for an HTTPRequest, so below is the link from the Default.aspx web page and below that is he asmx file:
[code]....
View 2 Replies
Mar 23, 2011
Deployed an ASP.NET webforms application to IIS 6.0 64-bit server. Some associated DLLs are only available in 32-bit so I enabled 32-bit applications following these instructions. At first I was not able to view ASPX pages but I had forgotten to Allow the ASP.NET Web Service Extension. Sorted!Recent testing has shown that a 404 is received when requesting ASMX web service files. From the IIS log the status code is:
404 0 2
Anyone have any ideas? I anticipate this being something silly like all 404s.UPDATE 1 Not sure if this is related but the same error code is received when requesting PNG files. No problem serving JPG or GIF from the same folder... what!!!??? It is worth noting that if I change the extension of the image to JPG then it can be requested. UPDATE 2 See answer below.
View 2 Replies
Nov 17, 2010
I want to create the webservice which works on wss document libray. I can upload document in document library using aspx webservice.
View 1 Replies
Aug 3, 2010
how to invoke or use web service in our default .aspx page ?
i used following line to call webservice but its not responding,
1. service.useService("Webservice.asmx?WSDL", "UserDetails");
give solution for this problem.
2 style="behavior:url('webservice.htc')"
the above line also shows an error in behavior which is not a known css property. then how to use it?
View 2 Replies
Jul 21, 2010
I have one function in webservice:-
/// <summary>
/// Get the required user agreements for the application specified.
/// </summary>
/// <param name="applicationName">The name of the application.</param>
/// <returns>A UserAgreement array containing the name and text of the user agreement.</returns>
[Code]....
i have already registered the webservice, now i need to capture the return value in my aspx.cs page.
i tried like this
UserAgreement[] userAppAgreements = inquiry.GetRequiredUserAgreements(appName);
this is giving me error.
then i tried like this
object userAppAgreements = inquiry.GetRequiredUserAgreements(appName);
here not able to check the null and >0 condition.
View 5 Replies
Jun 18, 2010
I have a following php web service (nusoap-server-struct.php):
[code]....
how to call php web service from .aspx without adding Web Preference
View 2 Replies
Jun 21, 2010
i built contact form in aspx 3.5 and i'm using jquery to send it to web service (asmx).the web service need to return success or error code. the problem is that at the web method i get only single value and not array. I'm kind of new in ajax and i tried a lot of solutions but without any results.. please if you can only explain me the principle of what to do it also be good..this is the client side:
$(document).ready(function()
{
$("#submit").click(function(event)
{
[code].....
when i debug i see that the input parameter "name" contains only one string - i dont know how to get the full json string that i send to the service and contains all the form data - i want to desirialize it to string array or something like, and process it.
View 2 Replies
Nov 18, 2010
Does anyone know where I could look to find how to create a simple login page.aspx via WebService?
View 8 Replies
Apr 8, 2010
i have designed a web service which would create 2 csv files on the system. I want to send the links to the location of the files as an url attachment over the aspx page.
like : http://myserver/download.aspx?file1=C: empimage1.png&file2=C: empimage2.png
the output from the asmx web service is : [Code]....
where xx.xx.xxx.xxx is the ipaddress. this is the whole output i get from the webservice.
how do i get the aspx page to send the attachment in the format i mentioned above? I have added an asp website to the project and added the webservice as a web reference to this but i do not know how to get the location from the xml output file of the webservice result.
View 2 Replies
Aug 30, 2010
I am maintaining a web site project in VS2005 and have to call a new web service on a remote server. I've done add web reference, and created the .wsdl and .discomap files in the app_webReference folder. When I try to create a object representing the web service in the code ( wsnamespace.serviceName ws = new wsnamespce.serviceName(); ) the code wouldn't compile.
The web site project is already calling other web services. When I right click on the type representing the web service and "go to definition" it takes me to a proxy class (derived from of course SoapHttpClientProtocol) in the metadata. I think this is what's missing for the new web service i'm trying to call. Have I missed any steps?
View 1 Replies