Я пытаюсь создать панель управления 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>