Я пытаюсь разместить службу 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 помощь будет оценен и Я более чем счастлив выдать более подробную информацию о моем проекте, если это необходимо.
Заранее спасибо
Какую версию Windows Server вы используете? У вас есть другое приложение Wcf, работающее на одном сервере? –
Я использую хост-сервер под управлением Windows Server 2008 и .net версии 4.0. И нет, это моя первая служба, которую я пытаюсь запустить на этом сервере. Может быть, сервер не поддерживает WCF? – roostaamir
Возможно, на вашем сервере нет установленной инфраструктуры/wcf. Вы видите эту ссылку, чтобы подтвердить, что ваш сервер в порядке: http://blogs.msdn.com/b/blambert/archive/2009/02/13/enable-iis.aspx Вы также можете протестировать локально на своем сервере, если открывается страница. В диспетчере IIS попробуйте загрузить файл Hello.svc –