可以';t在WCF中执行SQL

本文关键字:WCF 执行 SQL 可以 | 更新日期: 2024-10-21 04:09:46

我曾尝试在WCF服务中收集数据,但总是收到错误

由于内部错误,服务器无法处理该请求。有关错误的详细信息,请在服务器上启用IncludeExceptionDetailInFaults(从ServiceBehaviorAttribute或从配置行为),以便将异常信息发送回客户端,或者根据Microsoft启用跟踪。NET Framework SDK文档并检查服务器跟踪日志。

当我卸载SQL Server 2005并将其替换为SQL Server 2008时,就会发生这种情况。请有人帮我

这是我的代码

public DataTable fillData(string connection, string tableName)
{
    DataTable dt = new DataTable();
    using (SqlConnection con = new SqlConnection())
    {
        con.Open();
        using (SqlDataAdapter da = new SqlDataAdapter("select * from " + tableName, con)) 
        {
            da.Fill(dt);
        }
    }
    return dt;
}

可以';t在WCF中执行SQL

您没有给出连接对象和打开连接对象的任何细节。你可能会因此而感到异常。使用其他版本的SqlConnection构造函数SqlConnection(字符串),并在SqlConnection的构造函数中传递参数中的连接字符串。

作为附加说明,使用try-catch来处理异常

public DataTable fillData(string connection, string tableName)
{
    DataTable dt = new DataTable();
    try
    {
       using (SqlConnection con = new SqlConnection(connection))
       {
           con.Open();
           using (SqlDataAdapter da = new SqlDataAdapter("select * from " + tableName,con))
           {
                da.Fill(dt);
           }
       }
     }
     catch(Exception ex)
     {
         //You may log exception here and show some message to user
     }
    return dt;
}

就您收到的消息而言,WCF服务设置不允许显示内部服务器错误的详细信息。您可以在开发过程中允许使用ServiceBehaviorAttribute.IncludeExceptionDetailInFaults属性来获得确切的错误消息。

ServiceBehaviorAttribute。IncludeExceptionDetailInFaults

获取或设置一个值,该值指定一般未处理的执行异常将转换为系统ServiceModel。Fault类型异常系统ServiceModel。ExceptionDetail,并作为故障消息发送。设置只有在开发对服务进行故障排除时,这才是真的