CommunicationException при вызове службы MVC из метода ObjectDataSource Select
В моем веб-приложении я получаю исключение, приведенное ниже: "Объект связи, System.ServiceModel.Channels.ServiceChannel, не может быть использован для связи, поскольку он находится в состоянии" Ошибка "" Трассировка стека:
"Трассировка стека сервера: в System.ServiceModel.Channels.CommunicationObject.Close(TimeSpan timeout) Исключение, переброшенное в [0]: в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsgtime) в System.Ru.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, тип Int32) в System.ServiceModel.ICommunicationObject.Close(TimeSpan timeout)
в System.ServiceModel.ClientBase1.System.ServiceModel.ICommunicationObject.Close(TimeSpan timeout) at System.ServiceModel.ClientBase
1.Close () в System.ServiceModel.ClientBase`1.System.IDisposable.Dispose() в System.Web.UI.WebControls.ObjectDataSourceView.ReleaseInstance(экземпляр объекта) в System.Web.UI.WebControls.ObjectDataSourceView.ExecuteSelect(Аргументы DataSourceSelectArguments) в System.Web.UI.WebControls.ObjectDataSource.Select() в BudgeteerWeb.EditTransaction.Page_Load(Отправитель объекта, EventArgs e) в C:\Develop\Budgeteer\BudgeteerWeb\BudgeteerWeb\ BudgeteerWeb \Edit.asp. VB: линия 27"
Я вызываю службу WCF из метода выбора, используемого ObjectDataSource. Все работает хорошо, если я не использую безопасность на основе сообщений. Но как только я включаю wsHttpBinding с ClientCredentials, я получаю вышеуказанную ошибку. Не уверен, что мне не хватает.
ASP код:
Код позади: Функция, используемая методом выбора objectDataSource:
Protected Function getTransaction(ByVal userID As String, ByVal transactionID As Int64)
As BudgeteerService.Transaction
Dim transaction As BudgeteerService.Transaction = New BudgeteerService.Transaction
transaction = wcfProxy.GetTransaction(userID, transactionID)
Return transaction
End Function
Try
transactionID = Int64.Parse(Request.QueryString("TransactionID"))
Dim userIdParm As Parameter = New Parameter
TransactionDataSource.Select() '**EXCEPTION GETS THROWN HERE**
FormView1.DataSource = TransactionDataSource
FormView1.DataBind()
Catch timeOutEx As TimeoutException
Throw timeOutEx
Catch comEx As CommunicationException
Throw comEx
Catch ex As Exception
Throw New Exception("An error occured while trying to retrieve this transaction")
End Try
Заранее спасибо.