2013-04-07 6 views
0

У меня есть служба WCF с wsDualHttpBinding. Как разместить его в управляемом приложении?Не удается разместить службу WCF

Uri baseAddress = new Uri("http://localhost:51160"); 

using (ServiceHost host = new ServiceHost(typeof(FileServer), baseAddress)) 
{ 
    host.Open(); 
    Console.ReadLine(); 
    host.Close(); 
} 
+1

Какую ошибку вы получаете? Если это проблема с разрешениями, убедитесь, что вы запустили ее с правами администратора. Если вы отлаживаете свое приложение из Visual Studio, вам нужно специально запустить среду IDE в качестве администратора. – oleksii

+0

Контракт требует дуплекса, но привязка «basicHttpBinding» не поддерживает его – 2013-04-07 18:46:38

+2

Похоже, [2630 результатов поиска] (https://www.google.co.uk/search?q=Contract+requires+duplex+but+binding+ «basicHttpBinding» + не поддерживает + его) для этой ошибки, вы посмотрели на них? – oleksii

ответ

0

Решение было добавить конечную точку моей службы:

Uri baseAddress = new Uri("http://localhost:51160"); 
WSDualHttpBinding binding = new WSDualHttpBinding(); 
using (ServiceHost host = new ServiceHost(typeof(FileServer), baseAddress)) 
{ 
    host.AddServiceEndpoint(typeof(IFileServer), binding, "http://localhost:51160/FileServer"); 

    ServiceMetadataBehavior smb = new ServiceMetadataBehavior(); 
    smb.HttpGetEnabled = true; 
    host.Description.Behaviors.Add(smb); 

    host.Open(); 
    Console.ReadLine(); 
    host.Close(); 
} 

И то же самое на стороне сервера (в конфигурации)

<services> 
    <service name="AK3_Server.FileServer" behaviorConfiguration="FileServerBehavior"> 
    <endpoint address="http://localhost:51160/FileServer" binding="wsDualHttpBinding" 
     bindingConfiguration="" contract="AK3_Server.IFileServer" /> 
    </service> 
</services> 

<behaviors> 
    <serviceBehaviors> 
    <behavior name="FileServerBehavior">   
     <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>   
     <serviceDebug includeExceptionDetailInFaults="false"/> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
+0

Привет, человек, вы делаете то же самое, что и дублируетесь, вам нужно только настроить его с помощью файла конфигурации или с помощью кода C# .. не из обоих мест .. поместить whats в app.config в комментарий, он все равно будет работать – ilansch

+0

@ilansch you're правильно. Спасибо – 2013-04-09 12:34:51