Я создал сервис WCF, вот его раздел конфигурации:
<system.serviceModel>
<services>
<service name="McActivationApp.EnrollmentService" behaviorConfiguration="McActivationApp.EnrollmentServicBehavior">
<endpoint address="" binding="webHttpBinding" contract="McActivationApp.IEnrollmentService"/>
<endpoint address="mex" binding="mexHttpBinding" contract="McActivationApp.IEnrollmentService" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="McActivationApp.EnrollmentServicBehavior">
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
Я подключился к службе с помощью WcfTestClient, добавил службу и могу вызывать только методы, находящиеся в разделе «IEnrollmentService (MetadataExchangeHttpBinding_IEnrollmentService)» (они работают как положено).
Но методы из другого раздела "IEnrollmentService (WebHttpBinding_IEnrollmentService)" не могут быть вызваны. Когда я пытаюсь вызвать любой из них, я получаю следующую ошибку:
Не удалось вызвать службу. Возможный
причины: служба не работает или
недоступный; на стороне клиента
конфигурация не соответствует
прокси; существующий прокси-сервер недействителен.
Обратитесь к трассировке стека для более
подробно. Вы можете попытаться восстановить путем
запуск нового прокси, восстановление
конфигурация по умолчанию или обновление
услуга.
Сведения об ошибке:
The Address property on ChannelFactory.Endpoint was null. The ChannelFactory's Endpoint must have a valid Address specified.
at System.ServiceModel.ChannelFactory.CreateEndpointAddress(ServiceEndpoint endpoint)
at System.ServiceModel.ChannelFactory`1.CreateChannel()
at System.ServiceModel.ClientBase`1.CreateChannel()
at System.ServiceModel.ClientBase`1.CreateChannelInternal()
at System.ServiceModel.ClientBase`1.get_Channel()
at EnrollmentServiceClient.UpdateEnrollmentProfile(String enrollmentId, String siteName, String deployServerName, Int32 methodId, String deviceClass, String deviceName, String registrationCode)
Вопрос 1:
Правильно ли я понимаю, что в случае вызова методов "IEnrollmentService (WebHttpBinding_IEnrollmentService)" мне нужно дополнительно указать некоторую конечную точку?
Вопрос 2:
Могу ли я получить это работоспособным вообще?
Вопрос 3:
Должен ли я заботиться о них (так как я смогу вызывать методы из своего «пользовательского» приложения)?