Я тестирую БД, в которой есть две таблицы (Спутниковая и Канальная) для показа по мере необходимости с помощью WCF.К счастью, я перепробовал все, что знаю, и в Интернете больше недели, и я не могу решить проблему.
Это контракт на обслуживание IService.cs
[ServiceContract]
public interface IService
{
[OperationContract]
List<Satalite> SelectSatalite(int satNum);
[OperationContract]
List<Satalite> SataliteList();
[OperationContract]
List<Channel> ChannelList(int satNum);
[OperationContract]
String Sat(int satNum);
}
И это файл Service.svc.cs
public class Service : IService
{
DataDbDataContext DbObj = new DataDbDataContext();
public List<Satalite> SataliteList()
{
var satList = from r in DbObj.Satalites
select r;
return satList.ToList();
}
public List<Satalite> SelectSatalite(int satNum)
{
var satList = from r in DbObj.Satalites
where r.SateliteID == satNum
select r;
return satList.ToList();
}
public List<Channel> ChannelList(int satNum)
{
var channels = from r in DbObj.Channels
where r.SateliteID == satNum
select r;
return channels.ToList();
}
public String Sat(int satNum)
{
Satalite satObj = new Satalite();
satObj = DbObj.Satalites.Single(p => p.SateliteID == satNum);
return satObj.Name;
}
}
Всякий раз, когда я пытаюсь запустить первые три, я получилошибка при тестировании с использованием wcftestclient.exe
, последнее работает без проблем.
Базовое соединение было закрыто: соединение было неожиданно закрыто.
Трассировка стека сервера:
в System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException (WebException webException, запрос HttpWebRequest, HttpAbortReason abortReason)
в System.ServiceModel.Cestnel * Http. Rehan..Channels.RequestChannel.Request (сообщение-сообщение, время ожидания TimeSpan)
в System.ServiceModel.Dispatcher.RequestChannelBinder.Request (сообщение-сообщение, время TimeSpan)
в System.ServiceModel.Channels.ServiceChannel.Call (действие String,Булево одностороннее, операция ProxyOperationRuntime, Object [] ins, Object [] outs, TimeSpan timeout)
в System.ServiceModel.Channels.ServiceChannelProxy.InvokeService (операция IMethodCallMessageCall, ProxyOperationRuntime)
в System.ServiceModel.Channels.ServiceChannelProessIn * 10 *)* Исключение выдается в [0]:
в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage (IMessage reqMsg, IMessage retMsg)
в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke (MessageData)тип) в IService.SelectSatalite (Int32 satNum)
в ServiceClient.SelectSatalite (Int32 satNum)
Внутреннее исключение: базовое соединение было закрыто: соединение было неожиданно закрыто.
в System.Net.HttpWebRequest.GetResponse ()
в System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply (тайм-аут TimeSpan)
что происходит из-за ошибки, которая понимается как ошибкаТаблицы БД, если бы я использовал известный типкомпилятором .net (напр.int
или string
) это будет работать без проблем.К счастью, я не нашел решения.