2014-05-13 2 views
0

У меня есть проект Windows CE в Visual Studio 2008. Существует несколько веб-ссылок на службы, размещенные в IIS 6.0 на Windows Server 2003. Когда я отлаживаю приложение или запускаю его после развернуто Я не могу использовать веб-службы из-за следующего исключения WebException:WebException при использовании службы WCF на устройстве Windows CE

Сообщение: «Не удалось установить подключение к сети».

Ответ: Ничего

Статус: System.Net.WebExceptionStatus.ConnectFailure

StackTrace: "в System.Net.HttpWebRequest.finishGetResponse() в System.Net.HttpWebRequest.GetResponse() в System.Web.Services.Protocols.WebClientProtocol.GetWebResponse (WebRequest запрос) на System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse (WebRequest запрос) на System.Web.Services.Protocols.SoapHttpClientProtocol.doInvoke (String имяМетода, Object [] параметры, WebClientAsyncResult AsyncResult)
в System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke (String имяМетода, Object []) параметры в WMS4.Tests.TestService.GetData() ...

Я создал тестовую службу для проверки поведения. Эта служба просто возвращает строку «Успех». Вот раздел модального сервиса app.config из Библиотеки услуг WCF, который содержит тестовую службу. Другие услуги были опущены:

<system.serviceModel> 
    <serviceHostingEnvironment> 
     <baseAddressPrefixFilters> 
     <add prefix="http://*myserver*"/> 
     </baseAddressPrefixFilters> 
    </serviceHostingEnvironment> 
    <services>  
     <service name="WMSDataService.TestService"> 
     <endpoint address="" binding="basicHttpBinding" contract="WMSDataService.ITestService"></endpoint> 
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />  
     </service> 
    </services> 
    <bindings> 
     <basicHttpBinding> 
     <binding name="basicConfig"> 
      <security mode="None"> 
      </security> 
     </binding> 
     </basicHttpBinding>  
    </bindings> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="basicBehavior"> 
      <serviceMetadata httpGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="true" /> 
     </behavior>  
     </serviceBehaviors> 
    </behaviors> 
    </system.serviceModel> 

Поскольку это проект Windows CE, нет файла клиента app.config.

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

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

ответ

2

для будущих поколений:

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

Чтобы исправить эту проблему, я поставил абсолютный адрес для каждой конечной точки вместо относительного адреса, как показано ниже:

<system.serviceModel> 
    <services> 
     <service name="WMSDataService.TestService"> 
     <endpoint address="http://*MyServerURL*/WMSDataService.TestService.svc" binding="basicHttpBinding" contract="WMSDataService.ITestService" /> 
      </service> 
     </services> 
    </system.serviceModel> 
+0

Спасибо за ваше предложение, он решает мою проблему. Для моего случая я должен оставить адрес пустым и добавить путь IIS веб-службы WCF в Host-baseAddresses. – scsfdev