2015-10-12 4 views
0

Я пытаюсь самостоятельно разместить службу WCF в приложении для тестирования Unity.Unity WCF Service Hosting

При открытии службы сообщений об ошибках не сообщалось, но я не могу получить к ней доступ или это метаданные (проверены с использованием WcfTestClient, поставляемого с VS 2013).

Вот код, я использовал для создания службы:

_host = new ServiceHost(typeof(HomeAutomationService), new Uri("http://0.0.0.0:38001/")); 
ServiceMetadataBehavior smb = _host.Description.Behaviors.Find<ServiceMetadataBehavior>() ?? 
           new ServiceMetadataBehavior(); 
smb.HttpGetEnabled = true; 
_host.Description.Behaviors.Add(smb); 


_host.AddServiceEndpoint(typeof(IHomeAutomationService), new BasicHttpBinding(), ""); 
_host.AddServiceEndpoint(ServiceMetadataBehavior.MexContractName, 
    MetadataExchangeBindings.CreateMexHttpBinding(), "mex"); 

_host.Faulted += HostOnFaulted; 

_host.Open(); 

Я пытаюсь получить доступ к метаданным на локальном компьютере с помощью следующей Uri: http://localhost:38001/mex, но это возвращает только мне ошибку HTTP400

+0

Привет, sidewinder94, есть у найдено какое-либо решение, если да, то пожалуйста, поделитесь мыслью, я использую U nity.wcf для инъекции зависимостей и не может просматривать файл .svc в браузере. –

+0

Привет, нет, я не нашел способ ** хоста ** использовать службу WCF в приложении Unity. В то время, IIRC, это было ** невозможно ** и с тех пор не пытались. Сожалею. – Sidewinder94

ответ

0

Вы должны добавить обмен метаданных (MEX) конечная точка к вашим услугам:

<services> 
    <service name="MyService.MyService" behaviorConfiguration="metadataBehavior"> 
     <endpoint 
      address="http://localhost/MyService.svc" 
      binding="customBinding" bindingConfiguration="jsonpBinding" 
      behaviorConfiguration="MyService.MyService" 
      contract="MyService.IMyService"/> 
     <endpoint 
      address="mex" 
      binding="mexHttpBinding" 
      contract="IMetadataExchange"/> 
    </service> 
</services> 
+0

Разве это не то, что я сделал со второй AddServiceEndpoint? Если нет, вы знаете, где я могу найти документацию/примеры размещения службы WCF в Unity? Я мог только найти, как их потреблять – Sidewinder94

+0

при использовании единства. Я пытался отображать метаданные в браузере, он показывает, что конечная точка не находит, И еще одна вещь, что все методы службы работают нормально, мне нужны метаданные для клиентского приложения, любое предложение будет оценено –

Смежные вопросы