2013-02-13 3 views
0

У меня есть служба WCF с привязками net.tcp и http server.Невозможно просмотреть сервис в браузере сервера IE

файл Web.config выглядит следующим образом

<system.web> 
    <compilation debug="false" targetFramework="4.0" /> 
    </system.web> 
    <system.serviceModel> 
    <bindings> 
     <netTcpBinding> 
     <binding name="tcp_Unsecured" portSharingEnabled="true"> 
      <security mode="None" /> 
     </binding> 
     </netTcpBinding> 
    </bindings> 
    <services> 
     <service name="MarketFeedServiceLibrary.Service1"> 
     <endpoint address="net.tcp://localhost:808/MarketFeedService/Service.svc/mexTcp" 
      binding="mexTcpBinding" bindingConfiguration="" name="mexEndPoint" 
      contract="IMetadataExchange" /> 
     <endpoint address="net.tcp://localhost:808/MarketFeedService/Service.svc/tcpService" 
      binding="netTcpBinding" bindingConfiguration="tcp_Unsecured" 
      name="dataEndPoint" contract="MarketFeedServiceLibrary.IService1" /> 
     <endpoint address="http://localhost:80/MarketFeedService/Service.svc/basicHttp" 
      binding="basicHttpBinding" bindingConfiguration="" name="httpDataEndpoint" 
      contract="MarketFeedServiceLibrary.IService1" /> 
     <endpoint address="http://localhost:80/MarketFeedService/Service.svc/mex" 
      binding="mexHttpBinding" bindingConfiguration="" name="httpMexEndpoint" 
      contract="MarketFeedServiceLibrary.IService1" /> 
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name=""> 
      <serviceMetadata httpGetEnabled="false" /> 
      <serviceDebug includeExceptionDetailInFaults="false" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" 
     /> 
    </system.serviceModel> 
    <system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"/> 
    </system.webServer> 

Я проходил службу в IIS на локальном компьютере, если я просматриваю в IE, используя адрес "http://localhost/MarketFeedService/Service.svc", я получаю информацию о метаданных, как показано ниже

Browsing on Local-PC

Но если я у себя один и тот же веб-службы WCF в IIS на VPS сервер (Windows Server 2008 IIS 7.5), с тем же адресом, я получаю следующее сообщение об ошибке,

Browsing on VPS

Также я могу добавить ссылку на службу местного Hosted Service, но если я пытаюсь добавить ссылку на службу Сервера с пути «net.tcp: //IPAddress/MarketFeedService/Service.svc», я получаю следующее ошибка

Сообщение не может быть отправлено, поскольку услуга на адресе конечной точки «net.tcp: //IPAddress/MarketFeedService/Service.svc» недоступна для протокола адреса.

N.B.

  1. Net.Tcp Port Sharing Service, Net.Tcp Listener Adapter повернуты ПО
  2. WCF Http и Non-Http Activation установлены и включены.
  3. Протоколы http и net.tcp включены для веб-сайта по умолчанию, а также для приложения.

спасибо, что заранее.

+0

делает журнал событие даст вам какую-либо информацию? – Jocke

+0

Вы имеете в виду средство просмотра журнала событий или журнал трассировки, упомянутый на странице ошибок. Папка журнала трассировки пуста, ничего не регистрируется! – Marshal

ответ

0

Является ли файл svc правильно отображаемым в IIS? http://msdn.microsoft.com/en-us/library/vstudio/ms752252(v=vs.90).aspx

+0

Да, я прошел через ссылку, все настройки выполнены в соответствии с этим – Marshal

+0

Итак, вы запустили: aspnet_regiis.exe -i для .NET 4.0? Это полный web.config, который вы разместили выше? Какой управляемый режим трубопровода вы используете приложение в IIS? С помощью каких-либо http-модулей или расширений? http://stackoverflow.com/questions/1808680/web-application-problems-web-config-errors-http-500-19-with-iis7-5-and-asp-net – Jocke

+0

Я запустил aspnet_regiis.exe, но у него есть [эта ошибка] (http://serverfault.com/questions/107134/when-i-run-aspnet-regiis-exe-it-just-shows-me-the-command-line-options-and-does), но я прошел через сопоставления обработчиков Default Default, он показывает, что * .svc сопоставлен с aspnet. – Marshal

0

Еще один вариант (я не могу просмотреть размещенные снимки на работе из-за брандмауэра) для тех, кто имеет проблемы, которые могут или не могут точно соответствовать этому один -

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

Вы должны зайти в IIS и посмотреть на базовую настройку уровня сайта, там будет опция функций, называемая «фильтры ISAPI».

Чтобы сделать длинный рассказ короче, источником нашей проблемы стал специальный фильтр ISAPI, называемый UrlScan (версии могут очень, я думаю, что текущий - 3.1). Что делает этот фильтр, он ищет шаблоны входящих запросов, чтобы попытаться отобразить потенциально вредоносные запросы.

По мере того, как технология изменяется и улучшается, запросы, которые не знакомы с настройкой, входят и отклоняются или перенаправляются. В моем случае он просматривал расширения файлов. Более ранняя технология SOAP, запущенная из расширения ASP, была признана/благословлена ​​(.asmx), но мы никогда не настраивали службу RESTful или WCF, поэтому он не распознал расширение «.svc».

Первоначальная настройка обычно настолько плотная, что любой HTTP-запрос отклоняется или перенаправляется, а кто-то управляет веб-сервером, настраивает файл, чтобы обеспечить функциональность по мере необходимости.

Вы можете перейти в расположение файла, а в том же каталоге - файл .ini с настройками для этого инструмента.

В этом текстовом файле найдите разделы, называемые [AllowExtensions] и [DenyExtensions]. Обязательно добавьте .svc в группу «allow» и убедитесь, что он явно не указан в листинге.

Microsoft - HowTo: Use URLScan

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