Не удается найти конечные точки WCF .svc - PullRequest
1 голос
/ 30 октября 2010

локально У меня нет проблем с запуском приложения silverlight. сайт подходит просто отлично. мы внедряем наш код в нашу тестовую среду, и наш сайт (или доступ к нашим данным) перестает работать. Я не думаю, что наш файл SVC распознается. Я склоняюсь к проблеме с конечными точками. Я довольно плохо знаком с wcf и сервисными ссылками. ниже приведен наш код для webconfig и код для нашего clientconfig. интересно, может ли кто-нибудь дать какое-то руководство по поводу наших проблем.

наш web.config

<system.serviceModel>
  <behaviors>
    <serviceBehaviors>
      <behavior name="">
        <serviceMetadata httpGetEnabled="true" />
        <serviceDebug includeExceptionDetailInFaults="true"/>
      </behavior>
    </serviceBehaviors>
  </behaviors>
  <bindings>
    <customBinding>
      <binding name="AlgaeTrackerDataServices.customBinding0">
        <binaryMessageEncoding/>
        <httpTransport/>
      </binding>
    </customBinding>
  </bindings>
  <serviceHostingEnvironment aspNetCompatibilityEnabled="true" 
         multipleSiteBindingsEnabled="true"/>
  <services>
     <service name="AlgaeTrackerDataServices">
        <endpoint address="" 
                  binding="customBinding" 
                  bindingConfiguration="AlgaeTrackerDataServices.customBinding0" 
                  contract="AlgaeTrackerDataServices">
        </endpoint>
        <endpoint address="mex" 
                  binding="mexHttpBinding" 
                  contract="IMetadataExchange"/>
     </service>
   </services>
</system.serviceModel>

Конфигурация нашего клиента

 <system.serviceModel>
    <bindings>
        <customBinding>
            <binding name="CustomBinding_AlgaeTrackerDataServices">
                <binaryMessageEncoding />
                <httpTransport maxReceivedMessageSize="2147483647" 
                               maxBufferSize="2147483647" />
            </binding>
        </customBinding>
    </bindings>
    <client>
        <endpoint address="http://localhost:8080/AlgaeTrackerDataServices.svc"
                  binding="customBinding" 
                  bindingConfiguration="CustomBinding_AlgaeTrackerDataServices"
                  contract="AlgaeTrackerServices.AlgaeTrackerDataServices" 
                  name="CustomBinding_AlgaeTrackerDataServices" />
    </client>
</system.serviceModel>

Локально ... когда я нажимаю на файл svc и просматриваю в браузере, он подходит, и я могу посмотреть на wsdl. На нашем сервере я не могу просмотреть файл svc ..

Я получаю сообщение об ошибке, в котором говорится, что невозможно запустить asp.net ... порт 8080 используется

Наш журнал событий говорит об этом ..

WebHost не смог обработать запрос. Информация об отправителе: System.ServiceModel.Activation.HostedHttpRequestAsyncResult / 31852487 Исключение: System.Web.HttpException (0x80004005): Служба '/AlgaeTrackerDataServices.svc' делает не существует. ---> System.ServiceModel.EndpointNotFoundException: Сервис '/AlgaeTrackerDataServices.svc' делает не существует. в System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable (String normalizedVirtualPath) в System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast (String относительный виртуальный путь) в System.ServiceModel.Activation.HostedHttpRequestAsyncResult.HandleRequest () в System.ServiceModel.Activation.HostedHttpRequestAsyncResult.BeginRequest () в System.Runtime.AsyncResult.End [TAsyncResult] (IAsyncResult результат) в System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End (IAsyncResult результат) Имя процесса: w3wp Process ID: 13128

Заранее спасибо за помощь ...

Ответы [ 3 ]

2 голосов
/ 11 ноября 2010

Исправлено было добавление относительного пути в раздел конечных точек.

вместо "http://localhost:8080/AlgaeTrackerDataServices.svc

это сработало

»../ AlgaeTrackerDataServices.svc

2 голосов
/ 31 октября 2010

Использование файла SVC и транспорта http означало бы, что вы, вероятно, размещаете эту службу WCF в IIS, верно ??

В этом случае адрес службы определяется следующим образом:

  • имя вашего сервера
  • порт вашего сервера (опционально)
  • виртуальный каталог (и его возможные подкаталоги), в котором ваш SVC-файл содержится в
  • *.SVC само по себе

Таким образом, для "удаленного" клиента адрес обычно будет выглядеть примерно так:

http://(servername)/(virtual directory name)/YourService.svc

На удаленном клиенте ваша служба будет определенно не быть на localhost - это будет сама клиентская машина.Вам необходимо использовать имя сервера (или IP-адрес) сервера, на котором установлена ​​служба.Таким образом, все, что вам нужно сделать (скорее всего), это настроить клиентскую конфигурацию для ссылки на сервер адрес / URL для службы вместо localhost.Кроме того, если вы специально не изменили конфигурацию IIS, ваша служба будет работать на порту 80, а не на 8080.

0 голосов
/ 17 декабря 2010

У меня фактически была похожая проблема, и причина ошибки в моем случае заключалась в том, что виртуальный каталог находился в другой подпапке, чем то, что было определено как «Домашний каталог» на главном узле веб-сайта. E.g.:

Домашний каталог c:\Inetpub\wwwroot

Путь к приложению: c:\Apps\MyService

Когда я переместил MyService на c:\Inetpub\wwwroot\MyService, проблема ушла.

Кажется немного странным, что IIS просит вас просмотреть местоположение службы, когда в действительности это должна быть подпапка в домашнем каталоге.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...