CommunicationException при вызове службы MVC из метода ObjectDataSource Select - PullRequest
1 голос
/ 24 мая 2011

Я получаю исключение, приведенное ниже в моем веб-приложении: «Объект связи, 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

Заранее спасибо.

...