Я получаю исключение, приведенное ниже в моем веб-приложении: «Объект связи, System.ServiceModel.Channels.ServiceChannel, не может использоваться для связи, поскольку он находится в состоянии« Сбой »» Трассировка стека:
"Трассировка стека сервера: в System.ServiceModel.Channels.CommunicationObject.Close (TimeSpan timeout) Исключение, переброшенное в [0]: в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage (IMessage reqMsg,IMessage retMsg) в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke (MessageData & msgData, тип Int32) в System.ServiceModel.ICommunicationObject.Close (Тайм-аут TimeSpan)
в System.ServiceModel.ClientBase 100 *) в System.ServiceModel.ClientBase`1.System.IDisposable.Dispose () в System.Web.UI.WebControls.ObjectDataSourceView.ReleaseInstance (экземпляр объекта) в System.Web.UI.WebControls.ObjectDataSourceView.ExecuteSelect (argumentsSourceSelect)System.Web.UI.WebControls.ObjectDataSource.Select () в бюджетеeerWeb.EditTransaction.Page_Load (Отправитель объекта, EventArgs e) в C: \ Develop \ Budgeteer \ BudgeteerWeb \ BudgeteerWeb \ MemberPages \ Transactions \ Edit.aspx.vb: строка 27 "
Iя вызываю службу 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
Заранее спасибо.