我编写了一个从我的 SQL Server 数据库中读取数据的 WCF 服务。当调用一个返回所有字符串的方法时它工作正常,但是如果我调用一个返回一个 int 的方法,它会崩溃并出现一些关于超时和太多数据的错误,这对我来说没有意义......
这是我的网络服务代码:
public List<Track> getTrack()
{
List<Track> trackList = new List<Track>();
SqlConnection dbConn = connectToDb();
string _selectQuery = string.Format("SELECT Date, Track, KeyID FROM hdData ORDER BY Track");
try
{
dbConn.Open();
SqlCommand cmd = new SqlCommand(_selectQuery, dbConn);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Track Dat = new Track();
Dat.Date = (string)reader[0];
Dat.TrackName = (string)reader[1];
Dat.KeyId = (int)reader[2];
trackList.Add(Dat);
}
dbConn.Close();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
return trackList;
}
如果我取出该KeyId
字段,它就可以正常工作......KeyId
在数据库中被定义为一种类型int
并且是一个自动递增字段。
我什至尝试将其转换为varchar
相同的结果...
我究竟做错了什么?
问候,院长
确切的错误和Track类如下:
好的,确切的错误是:
已超出传入邮件 (65536) 的最大邮件大小配额。要增加配额,请在适当的绑定元素上使用 MaxReceivedMessageSize 属性。
服务器堆栈跟踪:
在 System.ServiceModel.Channels.HttpInput.GetMessageBuffer(
)
在 System.ServiceModel.Channels.HttpInput.ReadBufferedMessage(Stream inputStream)
在 System.ServiceModel.Channels.HttpInput的 System.ServiceModel.Channels.HttpInput.ThrowMaxReceivedMessageSizeExceeded() .ParseIncomingMessage(Exception& requestException)
在 System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
在 System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
在 System.ServiceModel.Dispatcher.RequestChannelBinder。请求(消息消息,TimeSpan 超时)
在 System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
在 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage 消息)在 [0] 处重新抛出异常:
在
System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
在 IService1.getTrack( )
在 Service1Client.getTrack()内部异常:
已超出传入邮件的最大邮件大小配额 (65536)。要增加配额,请在适当的绑定元素上使用 MaxReceivedMessageSize 属性。
Track 类是:
[DataContract]
public class Track
{
string _Date, _TrackName;
int _KeyId;
[DataMember]
public string Date
{
get { return _Date; }
set { _Date = value; }
}
[DataMember]
public string TrackName
{
get { return _TrackName; }
set { _TrackName = value; }
}
[DataMember]
public int KeyId
{
get { return _KeyId; }
set { _KeyId = value; }
}
}