В настоящее время я разрабатываю службу WCF, самостоятельно размещенную в службе Windows, с помощью шаблона Self-Hosted SL Svc .
Шаблон работает, как и должно быть, и я могу звонить из приложения Silverlight, но когда я пытался изменить проект для использования олицетворения:
[OperationBehavior(Impersonation = ImpersonationOption.Required)]
public string GetData(int value)
{
return string.Format("You entered: {0}", value);
}
Это вызывает у меня исключение во время host.Open();
:
System.InvalidOperationException было
необработанное сообщение = контракт
Операция «GetData» требует Windows
личность для автоматического подражания.
Идентификатор Windows, который представляет
вызывающий не предоставляется связыванием
( 'CustomBinding', 'http://tempuri.org/')
для контракта
( 'IService1', 'http://tempuri.org/'.
Это моя конфигурация:
<system.serviceModel>
<bindings>
<customBinding>
<binding name="binaryHttpBinding">
<binaryMessageEncoding/>
<httpTransport/>
</binding>
</customBinding>
</bindings>
<services>
<service name="SLServiceLibrary.Service1" behaviorConfiguration="SLServiceLibrary.ServiceBehavior">
<endpoint address="Service1" binding="customBinding" contract="SLServiceLibrary.IService1" bindingConfiguration="binaryHttpBinding"/>
<endpoint address="" binding="webHttpBinding" contract="SLServiceLibrary.IClientAccessPolicy" behaviorConfiguration="webHttpEnablingBehavior"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
<host>
<baseAddresses>
<add baseAddress="http://localhost:8733/"/>
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="SLServiceLibrary.ServiceBehavior">
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="False"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="webHttpEnablingBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
Что я должен изменить, чтобы сделать эту работу? мне нужно добавить некоторую конфигурацию в мой клиент Silverlight?
Заранее спасибо:)