WCF / ASMX :: Passing SessionID Using Web Service?
Jan 27, 2011
I'm running a WebMethod when a user clicks a link and I want the service method to have access to the clients SessionID but when I try to initialise a new string it returns a null value.
So to clarify(an example):
[WebMethod]
public string myMethod()
{
string s = Session.SessionID.ToString();
//rest of method here...
}
string s is returning null value. The code works fine on a postback and the method works without SessionID but I really want/need to be able to use a callback and need to be able to use the SessionID
I have web service (.NET 2.0), in this i have added proxy class of my client's web service. Client's web service is in Java. I have to pass SOAP requet in following format
<soap:Envelope xmlns:soap="[URL]xmlns:xsd="[URL]xmlns:xsi="[URL]instance"> <soap:Header> <AuthenticationToken xmlns="[URL] <Username xmlns="[URL]XXX</Username> <Password xmlns="[URL]YYY</Password> </AuthenticationToken> </soap:Header> <soap:Body> </soap:Body></soap:Envelope> for this i have written following code but it's giving error as "Request must include authentication token" -- code start-- public class WebService : System.Web.Services.WebService { public WebService () { //Uncomment the following line if using designed components //InitializeComponent(); } public MyHeader AuthenticationToken = new MyHeader(); public MyHeader MyHeader { get { return AuthenticationToken; } set { AuthenticationToken = value; } } [WebMethod] [SoapHeader("AuthenticationToken")] public string HelloWorldTest1() { AuthenticationToken .Password = "username"; AuthenticationToken .Username = "password"; ClientWebServices s1 = new ClientWebServices(); string soapbody=""; string res=s1.addmethod(soapbody); return res; }// end of method } //end of service class public class MyHeader : SoapHeader { public string Username; public string Password; } -- code end--
I have a web service called service1. Is it possible to pass the parameter related to the service to a class library so for e.g.
Service1.service ws = new Service1.service(); Service1.UserDetails ud = null;
now if I call a method that exists in a class and pass ud. Cam i do that because I am trying to do this and I am getting an error. Do i need to add a web
reference to this service in the class library My method call is like this
authenticateUser.Authenticate(ud, UserName);
and in the class libary I have
public void Authenticate( Service1.UserDetails ud , string UserName) { }
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.
I have a .net app developed in .net 4.0 version. And I implemented an asmx web service in this. Now I want to call one of the webservice method in another classis ASP application java script function.
Is it possible to run a web service as a particular user/service account in the same way a Windows service can?I have a service account used for connecting to the DB and want to run the webservice under this account as the users using the webservice won't have DB access.The way I see to do it is to include the Impersonate option in the Web.config file, but is there any better way to do this?
How to create an instance of web service without adding web service reference? How to identify the server address/name where the web service is hosted from C# code?
My WCF Client calls my WCF Service which then calls ASMX Web Service. The problem is i have configured my wcf client and wcf service to windows credentials type but when wcf service calls asmx service the user credentials (default windowsidentity) is not passed to asmx service.
In WCF Service i am able to get user identity by using : Thread.CurrentPrincipal.Identity.Name; WCF Service - i have disabled anonymous access and enabled windows authentication. ASMX Web Service - i have disabled anonymous access and enabled windows authentication. WCF Service Config [Code]....
i have created a normal web service and i want to host it outside IIS. one idea i got is to use window service as hosting environment. i have created a web service and hosted it window service and its window service is running now.would anybody please let me know that how can i call web service hosted in window service binded over soap.tcp. here is my sample code.
I am keep getting an error that "Service Error : wbsTest failed" where wbsTest is my webservice.
The error comes up frequently enough for the user - normally reproducible within a minute or so of working with an application.
A bit of background: An user is a remote user accessing application hosted on our servers over https. He is software firewalled and his connection isn't the fastest but it is responsive enough. When errors do not present themselves, page loads are fairly quick.
I have the .asmx web service written in .NET 2.0 .This service uses the WSE 3.0 .for authentication.This service checks the request header (header contains teh Uer name and pwd) and validate against the database.after validating gives cal to the actual method.everything works fine in frtamework 2.0.Now i have created the project.Added the proxy of the service into the project(proxy is created using svcutil.exe)but I am not able to pass the user credentials to the service.//Comment: Set the Username Token Information.'
I am writing a program to measure the latency(response round trip time) for a web service. I need to have this at client side.
My initial plan is to store the time at which request is sent and then calculate the difference in time when we recieve a response from the web service. Is this the correct way to measure latency of web service. This has some overhead because of storing time and all. How can this be done?
Another option is to attach a timestamp with the SOAP request. But the server should return the timestamp. This will not be possible in case of third party web services.
I am using a third party Web Service. I am passing a string to a function in that service, that string, which i am reading from a UTF-8 text file. The problem it that the string contain some non ASCII characters.
Now if i save that text file to ANSI format, read it in a string and pass that string to Service then it works smoothly but with UTF-8 encoded string the service throw exception [Code]....
NON ASCII characters UTF-8 encoding SOAP
I am using ASP.NET.
Third party sevice is in java. I also tried it by making a web service in .net, but there was issue there too.
I am creating a Web Service, which will be used by a client to send data to our Database.The client will be sending close to 30 fields that will be updated to our table. If I write a Web method, I will need to have all these 30 fields as parameters to that method. Is there a better way than sending all of them as parameters?
i have the following method, however i want to pass methods to it, i know how to do it the usual way, however when it comes to Webservices/API's what is the correct way to do it. Here is my method so far;
[WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public string MyWebMethod(string foo, string bar) { // DataContractJsonSerializer to deserialize foo and bar to // their respective FooClass and BarClass objects. return "{"Message":"Everything is a-ok!"}"; } I'll call it from the client via: var myParams = { "foo":{"name":"Bob Smith", "age":50},"bar":{"color":"blue","size":"large","quantity":2} }; $.ajax({ type: 'POST', url: 'https://mydomain.com/WebServices/TestSvc.asmx/MyWebMethod', data: JSON.stringify(myParams), contentType: 'application/json; charset=utf-8', dataType: 'json', success: function (response, status) { alert('Yay!'); }, error: function (xhr, err) { alert('Boo-urns!'); } }); However, this yields the following error (a breakpoint on the first line in MyWebMethod() is never hit): {"Message":"No parameterless constructor defined for type of u0027System.Stringu0027.","StackTrace":" at System.Web.Script.Serialization.ObjectConverter.ConvertDictionaryToObject(IDictionary2 dictionary, Type type, JavaScriptSerializer serializer, Boolean throwOnError, Object& convertedObject) at System.Web.Script.Serialization.ObjectConverter.ConvertObjectToTypeInternal(Object o, Type type, JavaScriptSerializer serializer, Boolean throwOnError, Object& convertedObject) at System.Web.Script.Serialization.ObjectConverter.ConvertObjectToTypeMain(Object o, Type type, JavaScriptSerializer serializer, Boolean throwOnError, Object& convertedObject) at System.Web.Script.Services.WebServiceMethodData.StrongTypeParameters(IDictionary2 rawParams) at System.Web.Script.Services.RestHandler.InvokeMethod(HttpContext context, WebServiceMethodData methodData, IDictionary`2 rawParams) at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.MissingMethodException"}
I'd like to pass in two string parameters and use DataContractJsonSerializer to write new Foo and Bar objects. Am I missing something?