Автономный WCF с автономным веб-сервером (HttpListener) на том же порту.Возможно?

StackOverflow https://stackoverflow.com/questions/1732115

  •  20-09-2019
  •  | 
  •  

Вопрос

Я работаю над приложением, и мне нужно предоставить ему веб-интерфейс.Я думал об использовании WCF для предоставления сервиса для веб-интерфейса и самостоятельного размещения обоих с моим приложением (без IIS).Теперь, если эти двое не используют один и тот же порт, браузер будет жаловаться на XSS...

Возможно ли это?Это хорошая идея?

Редактировать После некоторого расследования мне удалось заставить это работать.

Вот код самостоятельного хостинга веб-сервиса:

var serviceHost = new ServiceHost(typeof(CalculatorService));
serviceHost.AddServiceEndpoint(typeof (ICalculator), new WSHttpBinding(), "http://localhost:8000/webservice");
serviceHost.Open();

Console.WriteLine("CalcService is running.");
Console.WriteLine("Press Enter to terminate the service.");
Console.ReadLine();
serviceHost.Close();

И вот код веб-хостинга:

var listener = new HttpListener();
listener.Prefixes.Add("http://localhost:8000/webconsole/");
listener.Start();
Console.WriteLine("listening");
while(true)
{
    HttpListenerContext context = listener.GetContext();
    /* ... */
}

Чтобы веб-сервис заработал, мне нужно было сделать это

Это было полезно?

Решение

Да - работает нормально.HTTP.SYS абстрагирует HTTP-интерфейс, используемый WCF, и позволяет произвольному числу процессов совместно использовать один и тот же порт, если все они используют разные префиксы пути.Я делаю это постоянно точно по той же причине.

Однако это не будет работать на XP в IIS 5.1 или с веб-сервером VS - на всякий случай, если вы собирались попробовать.Они не основаны на HTTP.SYS, поэтому они рассчитывают получать исключительно свои порты.Однако во всем остальном (включая XP с 2 хостами WCF) все готово.

Другие советы

Звучит замысловато, мне придется посмотреть этот фильм.Если больше ничего не работает, вы могли бы сохранить его как два отдельных порта, но затем, возможно, использовать обратный прокси для сортировки конечной точки WCF?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top