2013-08-01 2 views
0

Я пытаюсь получить доступ к службе asmx третьей стороны (из моего приложения ASP.Net MVC 4). В основном это нормально работает, затем внезапно появляется сообщение об ошибке:. Соединение с SoapClient не было закрыто

The connection was not closed. The connection's current state is open. 

Этот вопрос уходит на некоторое время, и все работает нормально. Затем он появляется снова.

Я подозревал прокси-сервер или сетевые настройки, но изменение не помогло. Я могу «обновить ссылку на службу» без проблем, что означает, что я могу получить доступ к службе должным образом.

Возможно ли, что эта ошибка возникла в конце обслуживания и пузырится в моем приложении?

Могу ли я определить, находится ли проблема у клиента или у меня?

Благодаря

Детали:

[System.ServiceModel.FaultException]: {"Server was unable to process request. ---> The connection was not closed. The connection's current state is open."} 

Server stack trace: 
    at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc) 
    at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) 
    at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) 
    at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) 

Exception rethrown at [0]: 
    at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) 
    at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) 
    at MyTDI.ClientWebServices.TDIWS_SalesManagement.WS_SalesManagementModuleSoap.GetAgentCommissions(String Agency_RegNo, DateTime StartDate, DateTime EndDate, Int32 PageNo) 
    at MyTDI.ClientWebServices.TDIWS_SalesManagement.WS_SalesManagementModuleSoapClient.GetAgentCommissions(String Agency_RegNo, DateTime StartDate, DateTime EndDate, Int32 PageNo) in d:\Projects\TPLTDI\MyTDIPortal\MyTDI.ClientWebServices\Service References\TDIWS_SalesManagement\Reference.cs:line 111 
    at MyTDI.ClientWebServices.Sales.SalesManagementWebService.ListAgentCommissions(String agentId, DateTime startDate, DateTime endDate, Int32 pageNo) in d:\Projects\TPLTDI\MyTDIPortal\MyTDI.ClientWebServices\Sales\SalesManagementWebService.cs:line 31 

Код

  DataSet ds = null; 
     using(WS_SalesManagementModuleSoapClient client = new WS_SalesManagementModuleSoapClient()) 
     { 
      try 
      { 
       ds = client.GetAgentCommissions(agentId , startDate , endDate , pageNo); 
      } 
      catch(Exception ex) 
      { 
       logger.Error(ex , ""); 
       throw new Exception("Unable to obtain commissions data from server."); 
      } 
     } 
+1

Ошибка возникает в соединении с базой данных. Убедитесь, что объект 'SqlConnection' правильно расположен в коде сервера (' using'). –

+0

Итак, вы имеете в виду, что я должен попросить владельцев веб-сервисов проверить их код? –

+0

Определенно сделайте это. –

ответ

0

Ошибка возникает в соединении с базой данных. Убедитесь, что объект SqlConnection правильно размещен в коде сервера (хорошей практикой является обертывание вашего кода операциями using).

Смежные вопросы