Опубликовать сервис WCF на сайте - PullRequest
0 голосов
/ 13 июня 2011

Я играл w / wcf около недели. У меня он работает на сервере разработки в Visual Studio, и теперь я хочу разместить проект в Интернете. Я использовал publish в Visual Studio, чтобы поднять его с помощью ftp. Мой FTP-клиент подтверждает, что файлы есть, но когда я ввожу адрес в браузере, я получаю следующую ошибку:

Ошибка сервера в «/» приложении. Этот ресурс не может быть найден. Описание: HTTP 404. Ресурс, который вы ищете (или одна из его зависимостей), мог быть удален, изменилось его имя или временно недоступен. Пожалуйста, просмотрите следующий URL и убедитесь, что он написан правильно.

Запрошенный URL: /EquipService.svc

Есть какие-то настройки, которые мне нужно изменить, или какие-то настройки, которые мне нужно выполнить на сервере? Я не знаю, почему он говорит, что файл недоступен, так как FileZilla показывает файлы на сервере. Любая помощь будет оценена. Спасибо

EDIT: Вот Web.config, но, как предисловие, я не знаю, что это делает, я просто копировал кусочки из другого проекта, пока ошибки не прекратились, и это сработало. : |

<?xml version="1.0" encoding="UTF-8"?>

<protocolMapping>
  <add scheme="http" binding="webHttpBinding" bindingConfiguration="webHttpBinding"/>
</protocolMapping>
<behaviors>
  <endpointBehaviors>

    <behavior>
      <webHttp helpEnabled="true" automaticFormatSelectionEnabled="true"/>
    </behavior> 
  </endpointBehaviors>

  <serviceBehaviors>
    <behavior name="metadataSupport">

      <serviceMetadata httpGetEnabled="true" />

      <serviceDebug includeExceptionDetailInFaults="false"/>
    </behavior>
  </serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true">
  <baseAddressPrefixFilters>
    <add prefix ="localhost"/>
    </baseAddressPrefixFilters>
  </serviceHostingEnvironment>
<bindings>
  <webHttpBinding>
    <binding name="webHttpBinding">
      <security mode="None">
      </security>
    </binding>
  </webHttpBinding>
</bindings>
<services>
  <service name="EquipService.svc">
    <endpoint address="~/EquipService.svc" binding="webHttpBinding" contract="Equipment.IEquipService" />
    <endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" />
  </service>
</services>

Я все еще не совсем понимаю, почему службы работают на сервере Visual Studio, а не на веб-сервере.

Но спасибо за поиск.

Ответы [ 2 ]

1 голос
/ 07 декабря 2011

Используйте WCFTestClient.exe для проверки вашей службы.

Пара вещей, которые я выучил. Всегда хорошо создать отдельный проект для Служб.

Вы можете создать веб-сервис и использовать его в том же веб-проекте, используя localhost в качестве адреса.

У меня был сценарий, когда я пытался вызвать его с HTML-страницы моего веб-сайта, используя javascript, и он не работал, потому что я создал веб-сервис в обычном веб-приложении. Чтобы получить к нему доступ из javascript, мне нужно было опубликовать этот сервис через Интернет, чтобы javascript мог ссылаться на ссылку (а не на localhost).

1 голос
/ 14 июня 2011

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

Спасибо за помощь

...