2015-09-17 7 views
0

Я пытаюсь разместить службу svc в своем веб-приложении, и я пытаюсь подключиться к нему с помощью простого клиентского приложения.добавить ссылку на службу только работает с localhost wcf service

Когда хозяин размещен в моем собственном компьютере и решение, и я бегу веб-приложение локально, все работает отлично, а это означает, что я могу добавить ссылку на службу, используя add service reference в моем клиентское решение с http://localhost:6543/Hello.svc в качестве адреса и когда я перехожу к URL-адресу службы, он показывает мне информацию о сервисе.

Но когда я публикую свой веб-сайт, и я пытаюсь добавить ссылку на мою службу, используя add service reference с http://myserver.com/Hello.svc в качестве адреса, я получаю сообщение об ошибке bleow:

There was an error downloading ' http://myserver.com/Hello.svc/_vti_bin/ListData.svc/ $metadata'. The request failed with HTTP status 404: Not Found. Metadata contains a reference that cannot be resolved: ' http://myserverc.com/Hello.svc '. The remote server returned an unexpected response: (405) Method Not Allowed. The remote server returned an error: (405) Method Not Allowed. If the service is defined in the current solution, try building the solution and adding the service reference again.

и странно, когда я перейти к myserver.com/Hello.svc , браузер начинает загружать файл Hello.svc вместо того, чтобы показывать данные и информацию об услуге.

это мой веб-сайт web.config файл:

<system.serviceModel> 
    <bindings> 
     <webHttpBinding> 
     <binding name="crossDomain" crossDomainScriptAccessEnabled="true" /> 
     </webHttpBinding> 
    </bindings> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="WithDebug"> 
      <serviceMetadata httpGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="true" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 
    <services> 
     <service name="HelloWorldService.HelloService" behaviorConfiguration="WithDebug"> 
     <host> 
      <baseAddresses> 
      <add baseAddress="http://myserver/Hello.svc"/> 
      </baseAddresses> 
     </host> 
     <endpoint 
      address="" 
      binding="webHttpBinding" bindingConfiguration="crossDomain" 
      contract="HelloWorldService.IHelloWorld" /> 
     <endpoint 
      address="mex" 
      binding="mexHttpBinding" 
      contract="IMetadataExchange" /> 
     </service> 
    </services> 
    </system.serviceModel> 

Я думаю, что я пропускаю что-то большое здесь, но так как я новичок в WCF, я не знаю, что это is.Any помощь будет оценен и Я более чем счастлив выдать более подробную информацию о моем проекте, если это необходимо.

Заранее спасибо

+0

Какую версию Windows Server вы используете? У вас есть другое приложение Wcf, работающее на одном сервере? –

+0

Я использую хост-сервер под управлением Windows Server 2008 и .net версии 4.0. И нет, это моя первая служба, которую я пытаюсь запустить на этом сервере. Может быть, сервер не поддерживает WCF? – roostaamir

+1

Возможно, на вашем сервере нет установленной инфраструктуры/wcf. Вы видите эту ссылку, чтобы подтвердить, что ваш сервер в порядке: http://blogs.msdn.com/b/blambert/archive/2009/02/13/enable-iis.aspx Вы также можете протестировать локально на своем сервере, если открывается страница. В диспетчере IIS попробуйте загрузить файл Hello.svc –

ответ

0

Вам необходимо запустить ServiceModel registration tool

«Этот инструмент командной строки предоставляет возможность управлять регистрацию WCF и WF компонентов на одной машине. При нормальных обстоятельствах вы не должны чтобы использовать этот инструмент, поскольку компоненты WCF и WF настроены при установке. Но если у вас возникли проблемы с активацией службы, вы можете попытаться зарегистрировать компоненты с помощью этого инструмента ».

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