Я подозреваю, что localhost:1794
будет причиной проблемы - когда приложение silverlight выполняется на клиентском компьютере, localhost не вернет его на сервер.
Метод, который я использую для устранения подобных проблемэто программно установить конечные точки во время выполнения.Две части информации, которые мне нужны, - это местоположение в моем веб-проекте службы (которое известно заранее) и адрес (домен), с которого было предоставлено приложение silverlight (который я могу узнать).
private void initEndpoint(ServiceEndpoint endPoint, string serviceName)
{
Uri hostUri = Application.Current.Host.Source;
string wcfBaseUri = string.Format("{0}://{1}:{2}/WebServices/", hostUri.Scheme, hostUri.Host, hostUri.Port);
endPoint.Address = new EndpointAddress(new Uri(wcfBaseUri + serviceName));
}
В этом фрагменте кода папка /WebServices
находится там, где мои веб-службы расположены в моем веб-приложении.Затем я вызываю эту функцию следующим образом:
LoggingServiceClient loggingService = new LoggingServiceClient();
initEndpoint(loggingService.Endpoint, "LoggingService.svc");
Моя фактическая установка немного сложнее, потому что я также хочу иметь возможность переопределить это и вручную настроить конечные точки, но вы получите точку.Благодаря этому я смог развернуть все виды установок, веб-серверы работают на нечетных портах, а бит silverlight-> webservice просто работает каждый раз.