【问题标题】:unable to return my sql connection object from web service to asp.net project无法将我的 sql 连接对象从 Web 服务返回到 asp.net 项目
【发布时间】:2011-11-23 12:43:55
【问题描述】:

这是我的网络服务代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Services;
    using System.Data.Sql;
    using System.Data.SqlClient;
    
    namespace DBwebService
    {
        /// <summary>
        /// Summary description for WebService1
        /// </summary>
        [WebService(Namespace = "http://kse.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        [System.ComponentModel.ToolboxItem(false)]
        // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
        // [System.Web.Script.Services.ScriptService]
        public class WebService1 : System.Web.Services.WebService
        {
    
            string ConnectionString = "Data Source=Shumaila-PC;Initial Catalog=kse;Persist Security Info=True;User ID=sa;Password=sa";
            public SqlConnection Conn;
    
            [WebMethod]
            
            public void SqlConn()
            {   
    
                    Conn = new SqlConnection(ConnectionString);
                   // Conn.Open();

                }
                //catch (SqlException ex)
               //{
                    
                //    //Console.WriteLine( "Connection Unsuccessful " + ex.Message);
               
                //}
          
        }
    }

我需要返回我的 sql 连接对象,以便我可以在我的 asp.net pid roject 中调用它。但是当我这样做时

public SqlConnection SqlConn() 

return.Conn();

这给了我以下错误

“/”应用程序中的服务器错误。解析器错误描述:解析服务此请求所需的资源时发生错误。请查看以下特定的解析错误详细信息并适当地修改您的源文件。

解析器错误消息:无法创建类型“DBwebService.WebService1”。

来源错误:

第 1 行:

源文件:/WebService1.asmx 行:1

版本信息:Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.1 --.元数据包含无法解析的引用:“http://localhost:50387/WebService1.asmx”。内容类型 text/html;响应消息的 charset=utf-8 与绑定的内容类型不匹配(application/soap+xml;charset=utf-8)。如果使用自定义编码器,请确保正确实现 IsContentTypeSupported 方法。响应的前 1024 个字节是:'/'应用程序中的服务器错误。解析器错误'。远程服务器返回错误:(500) 内部服务器错误。如果在当前解决方案中定义了服务,请尝试构建解决方案并再次添加服务引用。

【问题讨论】:

  • 这是错字。我已经编码了康恩

标签: asp.net


【解决方案1】:

您的 Web 服务应该公开一个方法,该方法接受注册数据作为该方法的参数。然后,该服务可以将该数据提交到数据库,然后将 Ack/Nack 响应返回给 UI。

【讨论】:

    【解决方案2】:

    HMM 认为连接对象未序列化,您必须将对象声明为可序列化才能执行上述任务,只有原始类型可自动序列化。

    【讨论】:

    • 虽然序列化可能是让它跨越边界的解决方案,但即使使用序列化,也没有理由跨越边界传递数据库连接实例。
    【解决方案3】:

    天哪,你是认真的吗?您甚至不应该考虑从服务返回连接。您应该使用使用该连接执行的查询返回您加载的数据。也就是说,在 DAL 类库中的调用代码中移动您想要对连接执行的所有逻辑并仅返回结果。

    【讨论】:

    • 我是 .net 新手,但我想将我的注册页面数据发送到数据库。注册页面是另一个 asp.net 项目。请建议我如何实现它
    • 这不是.net,而是基本的设计意识。 Web 服务是完全不适合传递这些类型对象的应用程序边界。考虑到它,我的头发就直立起来。
    猜你喜欢
    • 1970-01-01
    • 2014-06-28
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 2010-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多