AJAX :: Use Web Methods Without Using .asmx Files?
Feb 2, 2010[WebMethod(EnableSession = true)]
View 5 Replies[WebMethod(EnableSession = true)]
View 5 RepliesI was trying to overload two web methods by adding the MessagName descriptor.
[WebMethod(MessageName =
"GetFiles")]
public
[Code]....
But I am getting the following Server Error
Server Error in '/Test.Service' Application.
Service 'TestService' does not conform to WS-I Basic Profile v1.1. Please examine each of the normative statement violations below. To turn off conformance check set the ConformanceClaims property on corresponding WebServiceBinding attribute to WsiClaims.None.R2304: Operation name overloading in a wsdl:portType is disallowed by the Profile. A wsdl:portType in a DESCRIPTION MUST have operations with distinct values for their name attributes. Note that this requirement applies only to the wsdl:operations within a given wsdl:portType. A wsdl:portType may have wsdl:operations with names that are the same as those found in other wsdl:portTypes.
- Operation 'GetFiles' on portType 'TestServiceSoap' from namespace 'http://www.Test.com'.
Description:
An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.InvalidOperationException: Service 'TestService' does not conform to WS-I Basic Profile v1.1. Please examine each of the normative statement violations below. To turn off conformance check set the ConformanceClaims property on corresponding WebServiceBinding attribute to WsiClaims.None.R2304: Operation name overloading in a wsdl:portType is disallowed by the Profile. A wsdl:portType in a DESCRIPTION MUST have operations with distinct values for their name attributes. Note that this requirement applies only to the wsdl:operations within a given wsdl:portType. A wsdl:portType may have wsdl:operations with names that are the same as those found in other wsdl:portTypes.
- Operation 'GetnFiles' on portType 'TestServiceSoap' from namespace 'http://www.test.com'.
To make service conformant please make sure that all web methods belonging to the same binding have unique names.
Source Error:
[Code]....
Stack Trace:
[Code]....
I have an ASP.NET 3.5 web application that uses ASMX web services that are called synchronously. I want to see if I can call them asynchronously because some of the web methods take a long time to process and I'm concerned that this is affecting scalability.
I found this article that explains how to use Asychronous web methods, from 2002: http://msdn.microsoft.com/en-us/library/aa480516.aspx. It says:
For asynchronous requests, during reflection the ASMX handler looks for Web methods with a certain kind of signature that it recognizes as being asynchronous. In particular, it looks for a pair of methods that have the following rules:
There is a BeginXXX and EndXXX Web method where XXX is any string that represents the name of the method you want to expose. The BeginXXX function returns an IAsyncResult interface and takes as its last two input parameters an AsyncCallback, and an object respectively. The EndXXX function takes as its only parameter an IAsyncResult interface. Both must be flagged with the WebMethod attribute. When I create the reference to my web service, I don't see any BeginXXX and EndXXX methods. I only see a XXXAsynch method and the article doesn't mention that method. I've done further research and every other article I've found also mentions the BeginXXX and EndXXX web methods.
On my local machine with the default ASP web server I am able to browse my web service's methods, which have with prompts and an invoke button.But when I deploy this same code to an IIS server and I browse the asmx page I just get a descritpion of the methods.
The web server is running windows 7 and IIS 6.
I am using GetMethods() method to get the list of all the available methods in WCF. But it returns everything, how can I only show the methods that I exposed to client.
[Code]....
How can I filter the methods only to WCF Servicecontracts?
given a url that references an asmx how would i go about displaying all of their method names? if assembly="http://.../something/something.asmx" and i was trying to display the method names of that service what should i do now that i have gotten myself this far? i cant seem to find a solution among the hundreds of examples ive looked at
public TestReflection(string assembly)
{
Assembly testAssembly = Assembly.LoadFrom(assembly);[code]....
i have created a simple WCF webserivce and it is running at http://localhost:2699/WCFServiceClient/myService.svc
with method
[Code]....
i have tested it from a wcftestclient it is working fine.
but when i try to call this method from jquery, it doesn't response.
my jquery code
$.ajax({ type: "POST", url: "http://localhost:2699/WCFServiceClient/myService.svc/GetData", data: { 'value': 5 }, contentType: "application/json; charset=utf-8", dataType: "text/xml; charset=utf-8",
success: function (msg) { alert$(msg.d); }, error: function (e) { alert("Unavailable"); } }); }
I need to run 5 different WCF methods but within a transaction. Is this possible in WCF? How can I do this in WCf, if it's possible?
The WCF methods will be called from the web service client, which could be an ASP.Net app or Winfoms app.
What is the best way for authenticating web methods in a web service? Is it right having authentication for every web method and verify user name and password for each web method? Is there a way to authenticate just once not for every web method? something like using sessions and etc?
View 2 Repliesit may sound a bit newbish question.We have a web service that comunicates with the database and exposes web methods that enables the application to access the database. Each method does only one operation (Insert, Update or Delete). What I need to do is create a transaction that will be consisted of multiple calls to the database, meaning multiple calls of more then one web methods. Can I do that? (I read that if the web method does not throw exception - or ContextUtil.SetAbort() is not called - the transaction will be commited automatically when the web method finishes executing, which I don't want to happen because I want to call another web method in the same transaction, and then manually commit the transaction)
View 2 RepliesI have a WCF service with two operations GetLoan and GetBalance
I want GetBalance to be exposed to all the clients but GetBalance tobe exposed to specific clients
How can this be done?
I have some WCF services that I want to return in different formats based on a querystring param. For example, [URL], [URL], [URL], etc... This would make it so that many different types of clients could consume the services whichever way was easiest for them, such as binary for a .NET client and json for an ajax or Flex client.
What I'm thinking is that I can have the WCF web methods return their .NET business objects and not worry about the output mode and then have a behavior that hooks in after returning from the web method which checks the querystring for this param and either:
1. Continues returning the business objects if the mode is dotnet.
2. Converts the business objects to xml if the mode is xml and returns a string of xml.
3. Converts the business objects to json if the mode is json and returns a string of json.
There is a web service exposed by Company A - cmpA, which is consumed be CmpB.
Requirement is:When request comes from comB, before reaching Web Method of cmpA, it should be validated by XML SCHEMA (.xsd).
How do I achive this,
I have an ASMX Web Service set up to use the HTTP GET method. Simple methods which take basic String and Int parameters are working ok, and I can call MyService.asmx/MethodName?Param=Value and get a response back in XML.
However, when I have a method which has a nullable Int (i.e. int?), I get this error:
< Method Name > Web Service method name is not valid.
The error message is confusing, as the method does exist, just not in the GET scope. I presume this is because a nullable type is too complex to be passed via the URL, but I can't find any documentation or SO posts on this.
I appreciate that complex types like Lists or custom classes etc will not work using GET, but I would have assumed that a simple nullable int or nullable datetime could be handled natively, simply by detecting whether it was omitted from the URL. Guess it's not that simple!
which is better approach from performance point of view, is it better to use one web-service method to load data by passing Database Table name and keys or is it better to use separate method for each database table! knowing that i'm using .net asmx through ajax requests.it's obvious that one method is better from OO perspective since it have one function type 'data loading' but what about performance? does IIS affected by that or not? also is it better to make multi web-services 'asmx files' or just one!
View 3 RepliesWe have a customer who are using HP Web Inspect to test for vulnerabilities in our software.
The web inspect tool is complaining about about error messages being returned when a request such as the following is made [URL].
The ASP.Net framework returns a page with the following text content and a 500 status code.
System.IndexOutOfRangeException: Index was outside the bounds of the array.
[code]....
but the error seems not be an unhandled error and so neither 500 page is shown.
Since upgrading from ASP.Net 2.0 on IIS 6.0 to ASP.Net 4.0 my ASMX files don't execute.
I have them on both an IIS 6 and 7 box and the same result. They essentially just output the content of the file.....
<%@ WebService Language="VB" CodeBehind="~/App_Code/WebService.vb" Class="dbns.WebServices.WebService" %>
I can see 4 ASMX handlers :
<add name="WebServiceHandlerFactory-ISAPI-4.0_32bit" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="C:WindowsMicrosoft.NETFrameworkv4.0.30319aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
[Code] ....
So why don't they execute?
I am using the Page Methods of Asp.Net Ajax to call the server method by enabling EnabledPageMethods of ScriptManager to "True". Can we return the DataSet using the Page Methods written on server side?
And also I want to know what are the default datatypes that are supported by the Page Methods to return to client?
I am looking for some .NET library that will help me to parse WSDL files. By "parsing" I mean extracting web service functions' info, associating functions with object that they use.
View 1 RepliesI have an RSS-reader in one of my webservices. I then utilize the webservice using javascript and everything works fine with small to moderately sized RSS-feeds.
But the webservice keeps timing out when I'm trying to use larger RSS-feeds.
ie. this feed from Youtube: [URL]
Javascript
VideoModule = {
LoadVideos: function () {
var ret = RSSService.GetFeed("http://gdata.youtube.com/feeds/base/users/TheOnion/uploads?alt=rss&
[Code]....
I have an extension method as follows:
public static class PageExtensions
{
public static int GetUserId(this Page targetPage)
{
var user = Membership.GetUser(targetPage.User.Identity.Name);
return (int)user.ProviderUserKey;
}
}
Now in a page I need to use this method in a static WebMethod, so I have added another 'extension method' to PageExtensions:
public static int GetUserId()
{
return (int)Membership.GetUser(HttpContext.Current.User.Identity.Name).ProviderUserKey;
}
and I call it as follows in my WebMethod: PageExtensions.GetUserId()
public class CacheHelper { /// <summary> /// Removes object with the specified key. /// </summary> /// <param name="key">The key.</param> [code]....
I have this methods for caching..I need to change this methods to use in aDictionary<string,object>
How do I need to change this code Because I am new to asp.net I am still learning..
I would like to figure out how to create an xml file that is of a directory of existing xml files. With this file I would then have an autocomplete extender to locate said blogs.
View 1 RepliesI have been wrestling with web services technology/techniques for part of 2010 - learning how to reate/consume/deploy... I have also been experimenting with third party web controls from ComponentArt. In some of the samples from ComponentArt I observed that they use .asmx files locally to populate their custom data controls (datagrids, comboboxes, treeview controls...). What is interesting (and a little bit confusing to me) is that in the ComponentArt samples they reference the web services directly within their controls in the markup. My question is if this can be done normally with controls that ship with Visual Studio (any version -- I have em all 2005, 2008, 2010). I ask this question because from VS I only know to reference web services by right clicking on the project in the solution explorer to add a web reference.
Here is the services tag used by ComponentArt
<Services>
<asp:ServiceReference path="FileExplorerTreeViewService.asmx" />
</Services>
Then in the property grid of a data control -- say a treeview control-- they reference the web service, and when the project is run -- the control is populated with data from the web service.
Do data controls from VS support this technique? My other question is if there is a benefit to using a web service as a datasource for a control and what is this benefit? What is the criteria for using a web service in this manner?
I have to define a web method which will fetch XML documents from another web service based on the list of projects from the database. Now I need to send these XML documents in different SOAP envelopes. XML documents can be more than one.
View 1 Replies