Приложение LightSwitch подавляется при создании прокси WCF - PullRequest
0 голосов
/ 21 января 2012

Я пытаюсь создать панель управления LightSwitch для веб-приложения. Вот почему я настраивал службу RIA WCF для взаимодействия со службой WCF веб-приложения. Тестируя загрузку пользователей, я обнаружил, что LightSwitch сказал, что не может загрузить ресурс. Немедленное окно сообщило мне, что в System.ServiceModel.dll возникла исключительная ситуация System.InvalidOperationException, но VS на самом деле не указывал мне на место, где возникла ошибка. После некоторой строки для выполнения строкового кода я обнаружил, что он задыхается при создании прокси WCF.

Пример кода для класса обслуживания WCF RIA:

Public Class RIAInterface
    Inherits DomainService
    Private WCFProxy As New Service.UserClient() '<-- Choke Point

    Public Sub New()
        WCFProxy.Open()
    End Sub

    <Query(IsDefault:=True)>
    Public Function GetUsers() As IQueryable(Of User)
        Dim TempList As New List(Of User)
        For Each User As Service.User In WCFProxy.GetUsers()
            TempList.Add(New User With {.ID = User.ID, .FullName = User.FullName,   .EmailAddress = User.Email, .Username = User.UserName, .Class = User.Class.Name, .AccountType = User.Privilege.Name})
        Next
        Return TempList.AsQueryable
    End Function
End Class

После некоторой одурачивания с помощью службы RIA и LightSwitch что-то изменилось. Я запустил приложение и получил фактическое исключение.

Сведения об исключении: Не удалось найти элемент конечной точки с именем «EduNetBackEnd_IUser» и контрактом «EduNet.IUser» в разделе конфигурации клиента ServiceModel. Это может быть связано с тем, что для вашего приложения не найден файл конфигурации, или из-за того, что в клиентском элементе не найден элемент конечной точки, соответствующий этому имени.

Это конфигурация ServiceModel в файле App.config:

<system.serviceModel>
    <bindings>
        <wsHttpBinding>
            <binding name="EduNetBackEnd_IUser" closeTimeout="00:01:00" openTimeout="00:01:00"
                receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false"
                transactionFlow="false" hostNameComparisonMode="StrongWildcard"
                maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
                allowCookies="false">
                <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                    maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                <reliableSession ordered="true" inactivityTimeout="00:15:00"
                    enabled="true" />
                <security mode="None">
                    <transport clientCredentialType="Windows" proxyCredentialType="None"
                        realm="" />
                    <message clientCredentialType="Windows" negotiateServiceCredential="true" />
                </security>
            </binding>
        </wsHttpBinding>
    </bindings>
    <client>
        <endpoint address="[Service_Address]"
            binding="wsHttpBinding" bindingConfiguration="EduNetBackEnd_IUser"
            contract="EduNet.IUser" name="EduNetBackEnd_IUser" />
    </client>
</system.serviceModel>
...