WCF / ASMX :: Data Being Returned By Web Services But Result Object Is Nothing?
Nov 10, 2010
I have a .net app consuming a java web service. I added the web reference in visual studio to the proper wsdl, it created the proper proxy class and I can call the web service without any problems but looking at the result that is returned, it is always nothing. I can see, by using Fiddler, that the response is returning what it should. If there is a response, why is the return object never being populated and no errors are thrown?
I've been given merely a wsdl above from client, without any further information given, to make a call using c# code but i added as web reference, used the codes below and the client side detected my request and they've returned us proper format xml too, but i cant retrieve it in the string array from the method returned. the "stringset" has became null instead of array[10]. Can anyone give a hint what kind of web service call is it, since it is not using the simple and classic way to invoke?
static void Main(string[] args) { //added web reference for wsdl as poccrm string[] stringset = new string[10]; poccrm.poclib caller = new ConsoleApplication1.poccrm.poclib(); poccrm.SE1I2001 callerItem = new poccrm.SE1I2001(); callerItem.AcctNo = "0010241000007914"; callerItem.TransNo = "12345678901234567890"; callerItem.StartDate = "20-01-2010"; stringset = caller.SE1I2001(callerItem); //here i get null for stringset, but client received the request and returned us value //same result even I use wsdl.exe converted it to a class file /* string[] stringset = new string[10]; poclib caller = new poclib(); SU1I1001 callerItem = new SU1I1001(); callerItem.AcctNo = "0010029004000370"; callerItem.transno = "12345678901234567890"; caller.end stringset = caller.SU1I1001(callerItem); */ }
I have a web service that returns an object that I attach to a gridview's datasource. is there a way to sort the data from the web service before attaching it to the datasource?
I'm maintaining a legacy XML web service system (Framework 2.0), and is trying to return an XML fragment as part of a SOAP response. Problem is: SOAP will auto-enclose the XML fragment in <[CData[]]> tag, and I want to avoid this.
I'm working on a site where we want to include a pie chart on a page. Right now I'm working on implementing that through Reporting Services (RDLC file) with an object data source.The SelectMethod of my object data source is a method that returns a list of business objects; lets say a List<Alpha> and Alpha has a sub object Beta with a Name property. In my report definition I have set the Category groups to be: =Fields!Beta.Value.Name this means that Alpha.Beta.Name are my pie slices. I got the following error:
An error has occurred during report processing. The Group expression for the rouping 'chart1_CategoryGroup1' contains an error: Object variable or With block variable not set.I was able to confirm this is because Beta is nullable and was able to fix the issue by updating the object Alpha to return a new Beta() if the Beta property is null. This solution is not ideal though because there are other places in my code where I need Beta to be null if it doesn't have a value yet.Is there a way to update the report definition to accept a null property as valid? Ideally I would like to specify the value as "Not Set" if Beta is null.
At the other end I am returning the following XML response:
[Code]....
I'm seeing my response.writes of A and B, so I know my data is making it to the other end and I'm getting a response back, but I can't seem to figure out how to read the response and redirect to the URL referenced in <URL>
I'm having a confusing issue concerning web services, XmlDocument return type and XmlProcessingInstruction. I've basically got a web service that returns an XmlDocument containing a list of search results. In order to make it a little more user-friendly, I'd like the XmlDocument to include a Processing Instruction (<?xml-stylesheet type='text/xsl' href='book.xsl'?>) for the inclusion of an XSL stylesheet. Is there something in the ASP.NET pipeline that would prevent this? I'm using the following code (lifted from the MSDN documentation of the CreateProcessingInstruction() method) in a test WebMethod and it doesn't seem to include the processing instruction.
A sample web service app I have been practicing with has two web methods: 1) HelloWorld -- which I can read the data from no problem - just a string 2) ClientData[] -- which returns an array of struct objects -- this is where I have the question.
Here is my instantiation of the webservice in my winform app for reading from HelloWorld
myWebSvc1.WebService1 s1 = new myWebSvc1.WebService1(); string y = s1.HelloWorld(); //--no problems so far here Console.WriteLine(y); //--but when I add the call to GetClientData() I have a problem List<ClientData> ls = new List<ClientData>(s1.GetClientData(3)); //--problem here
public struct ClientData { public String Name; public int ID; } [WebMethod(CacheDuration = 30, Description="Returns an array of Clients.")] public ClientData[] GetClientData(int Number) { ClientData [] Clients = null; if (Number > 0 && Number <= 10) { Clients = new ClientData[Number]; for (int i = 0; i < Number; i++) { Clients[i].Name = "Client " + i.ToString(); Clients[i].ID = i; } } return Clients; }
If I browse the .asmx file -- the sample xml returns the following if I enter 3 for GetClientData function param
From my winform app I get the following error messages when trying to add the GetClientData function call above --
Error 1 The best overloaded method match for 'System.Collections.Generic.List<DSS_2008.Form7.ClientData[]>.List(System.Collections.Generic.IEnumerable<DSS_2008.Form7.ClientData[]>)' has some invalid arguments
Error 2 Argument '1': cannot convert from 'DSS_2008.myWebSvc1.ClientData[]' to 'System.Collections.Generic.IEnumerable<DSS_2008.Form7.ClientData[]>'
Error1 The best overloaded method match for 'System.Collections.Generic.List<DSS_2008.Form7.ClientData[]>.List(int)' has some invalid arguments
Error 2 Argument '1': cannot convert from 'DSS_2008.myWebSvc1.ClientData[]' to 'int'
How can I fix this so that I can read the result into my winform app? //--sample web service
namespace MyService { using System; using System.Collections; using System.Data; using System.Web; using System.Web.Services; public struct ClientData { public String Name; public int ID; } /// <summary> /// Summary description for WebService1. /// </summary> [WebService(Namespace="http://codeproject.com/webservices/", Description="This is a demonstration WebService.")] public class WebService1 : System.Web.Services.WebService { //--source of sample: http://www.codeproject.com/KB/webservices/myservice.aspx private const int CacheHelloWorldTime = 10; // seconds public WebService1() { //CODEGEN: This call is required by the ASP+ Web Services Designer InitializeComponent(); } /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { } //WEB SERVICE EXAMPLE //The HelloWorld() example service returns the string Hello World //To build, uncomment the following lines then save and build the project //To test, right-click the Web Service's .asmx file and select View in Browser // [WebMethod(CacheDuration = CacheHelloWorldTime, Description="As simple as it gets - the ubiquitous Hello World.")] public string HelloWorld() { return "Hello World bbb"; } [WebMethod(CacheDuration = 30, Description="Returns an array of Clients.")] public ClientData[] GetClientData(int Number) { ClientData [] Clients = null; if (Number > 0 && Number <= 10) { Clients = new ClientData[Number]; for (int i = 0; i < Number; i++) { Clients[i].Name = "Client " + i.ToString(); Clients[i].ID = i; } } return Clients; } } }
I have recently converted all my applications to framework 4.0 and am very happy as a whole.
I have, however, run into a bit of a bind: i have exposed quite a few web services that have methods returning datasets.
Clients immediately started complaining that the order of the tables within the returned datasets were different. I investigated and can confirm that the webmethods are indeed shuffling the tables within the datasets. The order of tables in the method result are markedly different from the table order in the code before being returned.
My question is: is it possible to hard code the order of tables within the dataset being returned by a webmethod? I know that clients should, ideally, be referencing the tables via the table names, but that is - unfortunately - not the case in the really real world.
I need a book or two to get a good understanding of web services, starting from very basics, and going upto WCF. I've been using c# for 2 years and have intermediate level of experience with the language.
I have written some web services that I want to make available to others by subscription. The subscribers need to use the service from a specific domain / IP address and also authenticate with a user Id and password.
What exactly should I distribute to the subscriber so they can use the services, while exposing the least about my code?How can authenticate a consumer of services without always passing an Id / password for each service?
I learned from internet that webservices can be invoked only by HTTP whereas WCF can be invoked by HTTP,TCP,et., can i know the difference between them
I've created Web Services in .Net 3.5 & Consumed those Web Services in a Client Web Application. Now i want to Host the WebService in IIS 5.1. I'm very new to .net, I'm using VS 2010, Wndows XP Service Pack 3, IIS 5.1;
I have a wcf dataservice that talks to a silverlight client and a wcf service library that talks to a chat client.How can i get the two services to talk to each other?
ExchangeServiceBinding binding = new ExchangeServiceBinding(); binding.Credentials = new NetworkCredential(username, password); binding.Url = "http://servername/ews/exchange.asmx";
The above web services throws Unauthorized Access Error (Error : 401) for newly created users.I would like to know how to impersonate this user for accessing this exchange web services.
I have a webservice, it has few webmethods. when i create a client proxy and invoke the methods to check its response, i am getting this error. Can someone tell me what things can i check to know the cause of this? The error is not saying much hence blocked on this.
iam using webservice for create customer.by using WSDL(webservice) Url iam able to create customer Successsfully using Createcustomer request class. but in responce iam unable to get Unique ID the reponce object should generate as per SOAP functioanly iam unable to see the result set it is always null. How can i do this i need to capture that Unique ID after creating customer. it's Async mode. In below responce e.result set containning NULL values evn i customercreated in database.how to get my UniqueId in responce. my code:
{ Customer customer = new Customer(); PersonName pn = new PersonName(); pn.FirstName = txtFname.Text; pn.LastName = txtLname.Text; pn.MiddleName = txtMname.Text; pn.Salutation = "Mr."; customer.PersonName = pn; CreateCustomerRequest ccr = new CreateCustomerRequest(); ccr.CreateCustomer = customer; RSWS rsws = new RSWS(); rsws.CreateCustomerCompleted += new CreateCustomerCompletedEventHandler(rsws_CreateCustomerCompleted); rsws.CreateCustomerAsync(ccr); } void rsws_CreateCustomerCompleted(object sender, CreateCustomerCompletedEventArgs e) { CreateCustomerResponse ccresp = e.Result; Page.RegisterStartupScript("inspa", "<script>alert('customer created successfully')</script>"); }
i want to use the weather web service that provided for free from webservicex so i have added the service to my ASP.net web site [URL] in the code behind i have defined an object of this service and this object require the country and city name to get the result back i gave the
city name :amman country : jordan
but i dont know how can i get back the result? is there any function i forgeted?