Приветствую, коллеги!
Прошу совета по настройке IIS для Silverlight-приложения, использующего WCF.
Если проект запустить в Visual Studio для дебага, то все работает. Как вы знаете, VS запускает IIS Express для этих целей. И, если посмотреть, то Silverlight-приложение использует адрес locahost:39408, а WCF — locahost:39429:
Теперь нужно опубликовать сайт в локальной сети. На сервере в IIS создаю новый сайт, указываю путь на папку с Silverlight-приложением, привязываю его к свободному порту. Сайт работает, но Silverlight не находит, где теперь располагается веб-сервис. Сообщение об ошибке (из консоли chrome):
POST localhost:39429/Service2.svc
Uncaught Error: Unhandled Error in Silverlight Application An exception occurred during the operation, making the result invalid. Check InnerException for exception details. at System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()
at SilverlightApplication1.ServiceReference1.NumberRowAtLinesCompletedEventArgs.get_Result()
at SilverlightApplication1.MainPage.client_NumberRowAtLinesCompleted(Object sender, NumberRowAtLinesCompletedEventArgs e)
at SilverlightApplication1.ServiceReference1.Service2Client.OnNumberRowAtLinesCompleted(Object state)
Очевидная мысль, что wcf-сервис тоже нужно захостить и сильверлайту указать на него путь. Делаю. В Silverlight-приложении в файле ServiceReferences.ClientConfig меняю адрес сервиса с
<configuration>
<system.serviceModel>
<bindings>
<customBinding>
<binding name="CustomBinding_Service2">
<binaryMessageEncoding />
<httpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" />
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="localhost:39429/Service2.svc" binding="customBinding"
bindingConfiguration="CustomBinding_Service2" contract="ServiceReference1.Service2"
name="CustomBinding_Service2" />
</client>
</system.serviceModel>
</configuration>
на
<configuration>
<system.serviceModel>
<bindings>
<customBinding>
<binding name="CustomBinding_Service2">
<binaryMessageEncoding />
<httpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" />
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="myserver:8088/Service2.svc" binding="customBinding"
bindingConfiguration="CustomBinding_Service2" contract="ServiceReference1.Service2"
name="CustomBinding_Service2" />
</client>
</system.serviceModel>
</configuration>
(на всякий случай привожу весь текст конфига).
Но сообщение об ошибке не меняется. Т.е. сильверлайт по-прежнему продолжает стучаться на localhost:39429.
Где исправить этот путь на сервис и только ли в этом дело?
В сети достаточно много мануалов на эту тему, но они достаточно противоречивые. Только больше запутался от их прочтения.
Заранее благодарю всех, кто захочет поучаствовать в дискуссии.