2010-10-30 3 views
1

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

наш 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 (Строка normalizedVirtualPath) в System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast (Строка relativeVirtualPath) в System.ServiceModel.Activation.HostedHttpRequestAsyncResult.HandleRequest() в System.ServiceModel. Activation.HostedHttpRequestAsyncResult.BeginRequest() на System.Runtime.AsyncResult.End [TAsyncResult] (IAsyncResult результата) при System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End (IAsyncResult результат) Имя процесса: w3wp Процесс ID: 13128

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

ответ

2

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

вместо "HTTP: // локальный: 8080/AlgaeTrackerDataServices.svc

это работало

" ../AlgaeTrackerDataServices.svc

+0

Wow спасибо за эту идею. Я сделал CTRL + H (заменил все в решении) и заменил это 'http: // localhost: 8080 /' новым '../', и теперь работает локальный проект, а также решение на сервере !!! – Nasenbaer

2

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

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

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

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

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

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

+2

так много для него, отмечая это как принятый ответ .... –

0

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

Главная Каталог c:\Inetpub\wwwroot

путь Применение: c:\Apps\MyService

Когда я переехал MyService в c:\Inetpub\wwwroot\MyService проблема ушла.

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

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