C# - Web Service Method Returns Response Object Instead Of Custom Object?
Sep 29, 2010
I have the following code:
[WebMethod]
[SoapHeader("_webServiceAuth")]
public User GetUser(string username){
try
{
this._validationMethods.Validate(_webServiceAuth);
User user = new User(username);
[code]...
I've scenario where I want to insert data into database without post back. there are around 12 to 13 fields which i need to insert. I'm passing DTO from the client side which is actually Json object. Now the problem which i'm facing is how to convert that Json object which i got in webservice to the "class" (in my case class name is User) object.
[Code]....
In the above case AddNewUser method takes the object of User class. But i'm getting casting error. So how do I convert Json object to the "User" class object?
this works fine on my local site but as soon as i upload the site to my live server i get stem.NullReferenceException: Object reference not set to an instance of an object
on the first line of this:
if (!Page.User.Identity.IsAuthenticated) { pnlSignIn.Visible = true; pnlSignOut.Visible = false; }
private void FillDetails(string pId, out string Name, out string Address)
[code]....
I have method called Filldetails(),This method uses stored procedure to retrieve information for product name and address based on productid passed from productdetails table.I am working on globalization project.We have this product information for US country but there is no product information for germany country.So dataset is empty for germany.As result I am getting error object reference not set to an instance of the object.
I'm kinda new to web services and want to make sure I am doing things correctly.
I have a custom object which has sub objects as well. (let's say Company object, sub object is collection of Employee objects)
I want the web service to return a collection of Company objects. Do I make the service return a Dataset and custom generate a dataset with datatables representing the different objects?
What is the best way to do this? I tried to just serialize it, but that doesn't seem to work either.
I tried this dll
[URL]
But the output XML doesn't seem to include the sub object.
I have embed the fullcalender control in my asp.net mvc application. It is running fine locally. but when I uploads it to my domain server (third party) it showing me This Error: Uncaught TypeError: Object # has no method 'fullCalendar' in crome console (debugger). and not rendering the control. ** EDITED: My HTML code is this **
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %> Index <% var serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); %> < style type='text/css'> body { margin-top: 40px; text-align: center; font-size: 14px; font-family: "Lucida Grande",Helvetica,Arial,Verdana,sans-serif; }..............................................
I have a custom class declared as follows (in vb.net)
<Serializable()> _ Public Class NumInfo Public n As String Public f As Integer Public fc As char() Public t As Integer Public tc As char() Private validFlag As Boolean = True Public Sub New() End Sub
I also have public properties(read/write) for all the public variables
End Class In my service.asmx codebehind class I have a webmethod as follows: <WebMethod> _ <XmlInclude(GetType(NumInfo))> Public Function ConvertTo(ByVal info As NumInfo) As String Return mbc(info) 'mbc is another function defined in my service.asmx "service" class End Function
The problem is that when I start debugging it to test it, the page that I get does not contain any fields where I could input the values for the public fields of numInfo. How do I initialise the class? There is no "Invoke" button either. All I see are soap details as below:
ConvertTo Test The test form is only available for methods with primitive types as parameters. SOAP 1.1 The following is a sample SOAP 1.1 request and response. The placeholders shown need to be replaced with actual values. POST /BaseConverter/BaseCon.asmx HTTP/1.1 Host: localhost Content-Type: text/xml; charset=utf-8 Content-Length: length SOAPAction: "http://RohitServices.in/ConvertTo" <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ConvertTo xmlns="http://RohitServices.in/"> <info> <n>string</n> <f>int</f> <fc> <char>char</char> <char>char</char> </fc>
What am I doing wrong? For the record I tried replacing char() with string to see if it was the array causing problems but that didn't help either. I'm fairly new to web services. I tried replacing the custom object parameter with a primitive parameter just to check how things worked and it rendered a page with an input field and invoke button. I just can't seem to get it working with custom object.
I have a custom class declared as follows (in vb.net)
<Serializable()> _ Public Class NumInfo Public n As String Public f As Integer Public fc As char() Public t As Integer
[Code]....
What am I doing wrong? For the record I tried replacing char() with string to see if it was the array causing problems but that didn't help either. I'm fairly new to web services. I tried replacing the custom object parameter with a primitive parameter just to check how things worked and it rendered a page with an input field and invoke button.
I could really use some help on this one. I've been fighting it now for several days and we are supposed to start testing early next week.I am subscribing to 4 web services all hosted by the same company. The integration with 1, 2 and 3 all went fine, but on the fourth I keep getting the very unhelpful error:
System.Web.Services.Protocols.SoapException = {"Server was unable to process request. ---> Object reference not set to an instance of an object."} [code]...
I am trying to call web service from jquery..trying following way but i am not able to pass to complex type parameter to WCF service.My wcf function is as follows
<OperationContract()> <Web.WebGet(UriTemplate:="/GetData?strErrMsg={strErrMsg}&chrErrFlg={chrErrFlg}", ResponseFormat:=WebMessageFormat.Json, BodyStyle:=WebMessageBodyStyle.Wrapped)> _ Function GetData(ByRef strErrMsg As System.Collections.Generic.List(Of String), ByRef chrErrFlg As String) As String strErrMsg is System.Collections.Generic.List(Of String)
I am trying to call as follows
var Type; var Url; var Data; var ContentType; var DataType; var ProcessData; var parameters;
[code]...
And I am able to call other methods in same way having string and integer parameter.I have gone through this but didnt get anything. URL...
Is there an easy way to populate my C# Object with the JSON object passed via AJAX?
//This is the JSON Object passed to C# WEBMETHOD from the page using JSON.stringify {"user":{"name":"asdf","teamname":"b","email":"c","players":["1","2"]}} //C# WebMetod That receives the JSON Object [WebMethod] public static void SaveTeam(Object user) { } //C# Class that represents the object structure of JSON Object passed in to the WebMethod public class User { public string name { get; set; } public string teamname { get; set; } public string email { get; set; } public Array players { get; set; } }
I have built a WCF Service that is being consumed by a Silverlight app. At first I created one method that was very simple:
public String SfTest() { return "SF Test"; }
No poblem. My silverlight app references my service and displays "SF Test" in a textbox. Now I add a method to my wcf service like this:
public List<String> GetTest() { List<String> list = new List<string>(); String a = "a"; list.Add(a); String b = "b"; list.Add(b); return list; }
I update the reference to the service in my Silverlight app and the using statement in my xaml cs page throws an error like the service doesn't even exist although it is there. I am assuming the problem has to do with datatypes or serialization or something like that but it is driving me up the wall. Why can't I consume a simple generic list in my Silverlight app through the WCF service.
I am using this code to download and its working well for me.But i cant understand the code.Can someone explain me this code to me please?
Response.AddHeader is used to add a new HTML header,but what is an HTML header all about?and the parameters i am passing within it as the name and value;what are they?
Some strange problem have occured while developing application. Some WCF webservice returns object with date property.On client this web service is called using Jquery.ajax.Then result is parsed using json2.For date I simply use following expressions: var reMsAjax = /^/Date((d|-|.*))[/|\]$/; a = reMsAjax.exec(value); if (a) var b = a[1].split(/[-+,.]/); return new Date(b[0] ? +b[0] : 0 - +b[1]); unfortunatelly if browser timezone differs simple new Date with milliseconds not works.Time will be based on timezone.
If I run below ASP.NET code, it gives me same output in different post-backs. First Time
Name is = Smith also After Post-back (Button Click) Name is = Smith
I feel though I have defined singleton, it should return a new object every time in different ASP.NET post-backs. because once the function "PAGE_LOAD" is completed then there are no reference variables holding singleton object. So there is a change of unloading the singleton class from memory by CLR. that means there is a chance of losing private static reference variable and also single ton object stored. In ASP.NET stateless environment, why is it keeping earlier object in multiple post backs and btw, without having any reference variable to that object. Is this is known danger with singleton in ASP.NET environment?
I am new to webmatix and I do not do much development. I was trying to get some values from a request object and it's probably something very stupid I am doing wrong but really I cannot see what it is. This is the code I am trying to use, but I get no value from any items from the form:
@{ Layout = "_SiteLayout.cshtml"; Page.Title = "test"; if (IsPost)
I read this about the Response.Expires from the MSDN:"The Expires property specifies the duration of time before a page that is cached on a browser expires"what does the term "cached" stands for here?
My problem today is that I am having trouble shifting some functionality, that is being used in multiple applications, from the applications themselves to a class library I have started building. The issue comes in the fact the code was written to utilize Response objects as seen below...
[Code]....
This is all currently within a function called "DownloadDocument". I continue to have issues running any of the Response object functionality. I usually get the error saying, "Response is not available in this context", is there anyway to use a Response object in a class library file?
What I'm trying to do is rather basic, but I might have my facts mixed up. I have a details page that has a custom class as it's Model. The custom class uses 2 custom objects with yet another custom object a property of one of the 2. The details page outputs a fair amount of information, but allows the user to post a comment. When the user clicks the post button, the page gets posted to a Details action that looks something like this:
[AcceptVerbs(HttpVerbs.Post)] public ActionResult Details(VideoDetailModel vidAndComment) { ....} [Code]....
The only fields on the form that is posted are CommentText and VideoId. Here is what the VideoDetailModel looks like.
public class VideoDetailModel { public VideoDetailModel() { [Code].... I suppose if I added more form fields for the properties I need, they would get posted, but I only need 1 form entry field for the CommentText. If I could get the same Model objects value that were sent to the page to post with the page, it looks like the solution is rather simple. I think using the RenderPartial in the middle of a form is problematic somehow to how the form gets written in html. I can't really put my finger on why things went bonkers, but if I do my RenderPartials before my form and then begin my form with the text entry field and the hidden VideoId, the default ModelBinder works just fine. I was beginning the form, writing the hidden VideoId, rendering several partial views, create my CommentText field, and then closed the form out. The CommentText field would get bound just fine. The hidden VideoId would not. Maybe I missed a rule somewhere about using RenderPartial.
For completeness, the partial view I was rendering took a Comment object and just wrote out it's CommentText data. Several of these objects would exist for a single Video object. All of this data was in a custom type and passed into the View (the main view) as it's Model. This partial view did not have a form and did not have any data entry fields.
I have created my custom MembershipProvider. I have used an instance of the class DBConnect within this provider to handle database functions. Please look at the code below:
public class SGIMembershipProvider : MembershipProvider { #region "[ Property Variables ]" private int newPasswordLength = 8; private string connectionString; private string applicationName; private bool enablePasswordReset; private bool enablePasswordRetrieval; private bool requiresQuestionAndAnswer; private bool requiresUniqueEmail; private int maxInvalidPasswordAttempts; private int passwordAttemptWindow; private MembershipPasswordFormat passwordFormat; private int minRequiredNonAlphanumericCharacters; private int minRequiredPasswordLength; private string passwordStrengthRegularExpression; private MachineKeySection machineKey; **private DBConnect dbConn;** #endregion ....... public override bool ChangePassword(string username, string oldPassword, string newPassword) { if (!ValidateUser(username, oldPassword)) return false; ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(username, newPassword, true); OnValidatingPassword(args); if (args.Cancel) { if (args.FailureInformation != null) { throw args.FailureInformation; } else { throw new Exception("Change password canceled due to new password validation failure."); } } SqlParameter[] p = new SqlParameter[3]; p[0] = new SqlParameter("@applicationName", applicationName); p[1] = new SqlParameter("@username", username); p[2] = new SqlParameter("@password", EncodePassword(newPassword)); bool retval = **dbConn.ExecuteSP("User_ChangePassword", p);** return retval; } //ChangePassword public override void Initialize(string name, NameValueCollection config) { if (config == null) { throw new ArgumentNullException("config"); } ...... ConnectionStringSettings ConnectionStringSettings = ConfigurationManager.ConnectionStrings[config["connectionStringName"]]; if ((ConnectionStringSettings == null) || (ConnectionStringSettings.ConnectionString.Trim() == String.Empty)) { throw new ProviderException("Connection string cannot be blank."); } connectionString = ConnectionStringSettings.ConnectionString; **dbConn = new DBConnect(connectionString); dbConn.ConnectToDB();** ...... } //Initialize ...... } // SGIMembershipProvider
I have instantiated dbConn object within Initialize() event. My problem is that how could i dispose off this object when object of SGIMembershipProvider is disposed off. I know the GC will do this all for me, but I need to explicitly dispose off that object. Even I tried to override Finalize() but there is no such overridable method. I have also tried to create destructor for SGIMembershipProvider.
There is an external (Java based ) web service that i am calling. I've added my service reference and verified that Reference.cs has been generated.
Then i call my service form my client website like such:
[Code]....
But my response object is mostly null after it receives the response. The properties that should have values do NOT.
When i look at Trace viewer, the SOAP request is correct and the SOAP response is correct. I get back a valid soap response with all the data i need it's just not making its way back to my response object. I've tried regenerating the proxy many different ways (svcutil) with no luck.
Example of what is in the response object (good data which is not making it's way back to my response object):
I am creating a web application that allows a user to download a csv file of a gridview. However, after looking at tutorials online such as http://www.aspsnippets.com/Articles/Export-GridView-To-Word-Excel-PDF-CSV-Formats-in-ASP.Net.aspxand such, I successfully got the table I wanted but there are HTML content appended to the table as well.There was also a similar problem being brought up on the forum,http://forums.asp.net/p/1528174/3692826.aspx. The solutions didn't help me much though. However, I am not really sure how Handlers can benefit this. Furthermore, I don't want the user to be navigated to a blank page just to download the csv file. I tried to debug and insert removal code to remove the html code before the response object is being wrote out but seems even at the end of the writing method, the response object seems to be holding just the table content only.
i have a data grid view that i roll over and generate a tab delimited file out of using the reponse object in ASP. to wit...
Code: protected void CreateTabFile() { var d = DateTime.Today.ToShortDateString(); d = d.Replace("/", ""); var filename = "BankRecon"; filename += d; Response.Clear(); Response.Buffer = true
[code]....
how do i set it up to save the file to the datastore folder i have on the site itself, i want to automate an email and send this as an attachment, the email part works, but if its not in a consistent place i cant attach it. its an asp.net webforms project not a website project.