У меня есть приложение Silverlight с самообслуживанием wcf, которое я сам размещаю в нем. Когда я публикую приложение с сервисом iis7 на сервере Windows 2008, я не вижу никаких данных из службы в моем приложении (услуга не вызывается). Пока приложение для отладки я вижу данные, поступающие из servcie (данные таблицы сервера sql). Также, когда я публикую одно и то же приложение в своей локальной системе, то есть IIS-7 на windows7, я возможность доступа к сервису и данным, в любой системе в сети, а также в системе, где она публикуется. Я установил все возможные настройки на iis7, которые я нашел, а также URL-адрес для обслуживания правилен везде (динамически сгенерирован), так как я опубликовал его успешно на iis 7 в Windows 7, только приложение не обращается к wcf при публикации на iis на сервере Windows. Также я прочитал все сообщения, доступные здесь, но не нашел точного решения. Настройки для IIS 7 и ФОС я сделал этоПроблемы с публикацией службы wcf, включенной в Silverlight, на iis7 и сервере Windows 2008
- -aspnet_iisreg.exe (установлено)
- -вса требуется установка в окнах функции включать и выключать.
- -on iis, все разрешения установлены для нужного пользователя.
- -Настройка выполняется в типе mime и картировании обработчиков.
- -Я могу успешно просмотреть службу wcf без ошибок, и тот же URL-адрес используется при вызове службы из приложения.
Вот часть моего кода, где я динамически создаю URL-адрес конечной точки службы.
Try
busyIndicator.IsBusy = True
mService.Endpoint.Address = New EndpointAddress(DynamicEndpointHelper.ResolveEndpointUrl(mService.Endpoint.Address.Uri.ToString(),
App.Current.Host.Source.ToString()))
mService.GetProjectNamesAsync()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Public Class DynamicEndpointHelper
' Put the development server site URL including the trailing slash
' This should be same as what's set in the Dropthings web project's
' ' properties as the URL of the site in development server
Private Const BaseUrl As String = "http://localhost:1632/"
Public Shared Function ResolveEndpointUrl(endpointUrl As String, xapPath As String) As String
Dim baseUrl__1 As String = xapPath.Substring(0, xapPath.IndexOf("ClientBin"))
Dim relativeEndpointUrl As String = endpointUrl.Substring(BaseUrl.Length)
Dim dynamicEndpointUrl As String = baseUrl__1 & relativeEndpointUrl
Return dynamicEndpointUrl
End Function
End Class
web.config часть:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="testing.Web.Service1.basicHttpBinding" >
<security mode="Transport">
<transport clientCredentialType="Windows" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<services>
<service name="testing.Web.Service1">
<endpoint address="" binding="basicHttpBinding" contract="testing.Web.Service1" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
multipleSiteBindingsEnabled="true" />
</system.serviceModel>
ServiceReference.ClientConfig часть
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_Service1" maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647">
<security mode="None" />
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:1632/Service1.svc" binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_Service1" contract="sr_service1.Service1"
name="BasicHttpBinding_Service1" />
</client>
</system.serviceModel>
</configuration>
Можете ли вы разместить код? Если ваше устройство Silverlight самообслуживает что-то, что будет работать на вашем компьютере клиентов. Это не то, что вы хотите, и то, что он позволит. – nvoigt
Можете ли вы добавить часть, в которой вы ее разместили? – nvoigt
Я имел в виду, где вы * host * it. Вы сказали, что вы сами принимаете это. В серебряном свете. Это означает, что у вас есть строка в silverlight, где вы открываете хост службы. Может быть, вы не принимаете это самостоятельно? – nvoigt