我有一个webmethod在第一次尝试期间无法触发存储过程(我想在建立新连接时).我得到内部错误服务器作为错误Ajax消息.但是,如果我从URL地址返回返回,则执行存储过程并且页面可以正常工作,就像它们应该的那样.然后,如果我让页面保持一段时间不活动,然后尝试建立新连接,则会出现同样的问题.
我花了最近2天试图通过检查参数来识别问题,从web方法中删除大部分代码,最后我能够将问题跟踪到这个存储过程.
CREATE PROCEDURE [dbo].[spUnionServices] @freetext NVARCHAR(50),@offset int,@fetch int AS SET NOCOUNT ON; BEGIN SELECT IDphoto AS IDservice,photos.IDuser,photoCaption AS serviceTitle,photoDate as serviceDate,photoFileName AS servicePhoto,'Photo' AS service,photoPublished as servicePublished,inap,hashtags,KEY_TBL.RANK,screenName AS IDname FROM photos INNER JOIN freetexttable(photos,(photoCaption),@freetext) AS KEY_TBL ON photos.IDphoto = KEY_TBL.[KEY] INNER JOIN editorDetail ON editorDetail.IDuser = photos.IDuser ORDER BY RANK DESC OFFSET @offset ROWS FETCH NEXT @fetch ROWS ONLY END
这是我如何从web方法连接到存储过程
StringBuilder SBsmallSquares = new StringBuilder(); sqlConnection sqlConnection1 = new sqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString); using (sqlConnection1) { sqlCommand cmd = new sqlCommand(); sqlDataReader ReaderPopup; cmd.CommandText = "spUnionServices"; cmd.CommandType = CommandType.StoredProcedure; cmd.Connection = sqlConnection1; cmd.Parameters.AddWithValue("@offset",offset); cmd.Parameters.AddWithValue("@fetch",fetch); cmd.Parameters.AddWithValue("@freetext",fts); sqlConnection1.open(); ReaderPopup = cmd.ExecuteReader(); if (ReaderPopup.HasRows) { while (ReaderPopup.Read()) { //creating the string to return. Here there is no problem. } return SBsmallSquares.ToString(); } else return string.Empty;
如果有人能够在第一次尝试运行存储过程时发现我遇到此问题,我将不胜感激.谢谢!
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。