Avatar of is_staff
is_staff
 asked on

System.Data.SqlClient.SqlException: Procedure or function 'wp_session_spLogout' expects parameter '@SessionKey', which was not supplied.

I have a stored procedure that is throwing a web error whenever a user is logged in and the system times out . I am attaching my stored procedure and the web error log to this question. What do I need to include in my stored procedure to eliminate this web error from appearing on a daily basis?
wp-session-spLogout.docx
web-error.docx
ASP.NETC#Microsoft SQL Server

Avatar of undefined
Last Comment
is_staff

8/22/2022 - Mon
venk_r

From the exception that you attached looks like the sessionkey value isn't been passed at times and it throws the error.


System.Data.SqlClient.SqlException: Procedure or function 'wp_session_spLogout' expects parameter '@SessionKey', which was not supplied
is_staff

ASKER
This is true. I am wondering why this is happening and how can I prevent this from happening. This error has some connection with the files below. Any ideas?  Thank you.
TimeOut2.aspx
TimeOut2.aspx.cs
esolve

This error is being generated by your web app and has nothing to do with the proc. So whenever this code runs on your website for whatever reason the actual parameter has not been set.

You will have to modify your webmethod to ensure the parameter is being passed to the proc always.

You can update your proc to allow for default values like below but I don't think this will solve your problem. You will still have to ensure that your code in your web method does always include the parameter which for some reason is not.

ALTER   PROCEDURE [dbo].[wp_session_spLogout]
      @SessionKey      VARCHAR(64) = ''
AS

if(@SessionKey = '') BEGIN SET @SessionKey = NULL END

if(@SessionKey IS NOT NULL)
BEGIN
 'do updates etc.
END
This is the best money I have ever spent. I cannot not tell you how many times these folks have saved my bacon. I learn so much from the contributors.
rwheeler23
is_staff

ASKER
Do you think it has anything to do with the API call being used?
esolve

Do you have the code for the API call? My guess is that the API call passes a null to the procedure.
is_staff

ASKER
The only code I see for the API call is located in Timeout2.aspx.cs.
⚡ FREE TRIAL OFFER
Try out a week of full access for free.
Find out why thousands trust the EE community with their toughest problems.
is_staff

ASKER
Any other suggestions? This error is occuring whenever the web method hits timeout2.aspx page.
ASKER CERTIFIED SOLUTION
is_staff

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
is_staff

ASKER
Resolved