C# - Methods With Nullable Types Not Working In ASMX Web Service Using GET
Mar 14, 2011
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!
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?
i am calling the webservice from acrobat javascript. it works very well in development server. but when i put the same code in production server, it doesnt call the webservice.
I was expecting a parameter will become a empty string value if the parameter is missing, but it turn out to be null. have I done it wrong for the optional parameter?
I have this very simple test program that illustrates my question. I am not sure why this returns a null for the 'customer' variable. I would have thought that since the method MyTestMethod created a new Customer object that the value of 'customer' wouldnot be a null.
I have a web service that was running on Server 2003, IIS6. The service required an SSL connection. The service expects 4 parameters; a User ID, Password, Record ID and the "type" of data requested (one of 5 options). The service validates the user then simply performs a select of the record ID from a table determined by the type specified. This service was up and running for a couple of years. I installed a couple of new servers a couple of months ago. The users that makes use of this service just tried it and couldn't get a response. I checked the server and I hadn't copied the service over. The service is located in a virtual directory under the primary web site.
For example, the site is: [URL] Service virtual directory is "GetITSData" The call to the service has been: [URL] param1, param2, param3, param4 and the service would return the appropriate data. I "assumed" that when I copied the actual contents of the directory over, that the service would then begin functioning again (since it was empty). All IIS snap-in manager items for the virtual directory match the previous settings on the old server (I still have that server available in my office). The main site requires SSL and uses forms authentication. When I create a dummy site in VS2008 and try to add a service reference, I get the following: There was an error downloading [URL]. The request failed with HTTP status 403: Forbidden. Metadata contains a reference that cannot be resolved: [URL]. The remote server returned an unexpected response: (405) Method Not Allowed. The remote server returned an error: (405) Method Not Allowed. If the service is defined in the current solution, try building the solution and adding the service reference again.
Im trying to generate a service based on the wsdls ive been given hitting svcutil directly.. try as I might I cannot get it to export everything correctly.. it ends up not including chunks of info from the wsdl files..
I have a simple web service that isn't working with a standard jQuery call. The code is below. The jQuery will execute and succeed, but on debugging, the service argument is always null. I've had it separated as 4 string params in a json string and that didn't work either. I must be missing something on the config side, but I can tell what it is.
[System.Web.Script.Services.ScriptService] public class Quotes : System.Web.Services.WebService { ebMethod] public void Calculate(int param1, int? param2)
Well i am just trying to test interoperability between ASP.net And Java web services, wanted to know what are the INTEROPERABILITY issues concering DATA TYPES that are there between the 2?
ClassA is a custom class generated from a "type" in oracle database. ClassB is a custom class generated from a "table of type ClassA" in Oracle database.
The exposed service includes a login procedure which gets a username as input parameter and returns object B. Debugging the login procedure I can see that the data is retrieved from the database but not printed in the wsdl..
[Code]....
My ClassB definition is as follows:
[XmlInclude(typeof(ClassB))] public class ClassB : INullable, IOracleCustomType, IXmlSerializable ...
similar definition holds for ClassA as well. the generated wsdl is :
<? xml version="1.0" encoding="utf-8" ?> <ClassB xmlns="http://tempuri/org" />
I 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.
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.
if i have the web application with many pages like add order page, edit order page, and delete order page actually they also interact with the Sql Server 2008 and i also create web service page call Sales_Service.asmx. i know just i need to put something like query into Web Method in Sales_Service.asmx but i have a lot of queries, i don't know which query i should put into it and how the web page call the Sales_Services.asmx
A customer reported that our asmx web service is continually increasing in memory (mem usage as well as private bytes). We are able to reproduce the problem in our lab with Windows 2003 Server SP2 (fully patched) on some of the machines. The customer is using Windows 2008.
We created a Hello World web service targeting the 2.0 framework built under VS2005 SP1 and a test client that continues to call it. The memory increases steadily - approximately 40K per client request. If the test app is paused, the memory remains the same. When it is closed, the memory drops. Explicit calling of GC.Collect does not drop the memory.
We have run the memory profiler on the service and the leak is all native memory. We have uninstalled/re-installed the Framework on one of the machines but no difference. To our knowledge all of the security and IIS settings are not modified. We have compared app pool, default web site and virtual directory properties to machines that have no problem and they are identical.
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.
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]....