Ошибка WCF Server not found

#c# #.net #silverlight #wcf #silverlight-4.0

#c# #.net #silverlight #wcf #silverlight-4.0

Вопрос:

В службе WCF, используемой приложением Silverlight 4, я получаю эту ошибку:

{Система.ServiceModel.Исключение CommunicationException: Удаленный сервер вернул ошибку: не найден. —> System.Net.WebException: удаленный сервер вернул ошибку: не найден. —> System.Net.WebException: удаленный сервер вернул ошибку: не найден. в System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse (IAsyncResult AsyncResult) в System.Net.Browser …

В какой-то момент он работал, но я внес обновления, и теперь он не работает. Я могу запросить службу по URL, и она загрузит страницу справки, и я смогу изучить WSDL. FireFox определяет, что я получаю ошибку внутренней службы 500, поэтому я уверен, что это фактор, но не уверен, почему?

У меня есть служба WCF, размещенная в cassini для целей тестирования.

Есть идеи? Спасибо.

Комментарии:

1. Есть ли у какой-либо из ваших сущностей свойство с перечислением? Я часто сталкивался с этим сбоем, когда свойству присваивается значение, скажем, 5, которое не определено в перечислении.

Ответ №1:

Также проверьте, все ли классы, которые вы используете в качестве части аргументов метода, содержат [DataContract] и [DataMember] Атрибуты. Если кажется, что все в порядке, вы можете попробовать трассировку WCF, чтобы точно определить проблему.

Включение его происходит следующим образом (web.config):

 <configuration>
  <system.diagnostics>
    <sources>
          <source name="System.ServiceModel" 
                switchValue="Information, ActivityTracing"
                propagateActivity="true">
          <listeners>
           <add name="traceListener" 
               type="System.Diagnostics.XmlWriterTraceListener" 
               initializeData= "c:logTraces.svclog" />
          </listeners>
       </source>
    </sources>
  </system.diagnostics>
</configuration>
  

На результирующем файле можно дважды щелкнуть, и он будет открыт в trace examiner (часть инструментов Visual Studio). Ищите любые КРАСНЫЕ разделы, они приведут вас к любым исключениям, возникшим в ходе переговоров клиент-сервер.

Надеюсь, это поможет, приветствую!

Ответ №2:

Вы проверили все настройки конечной точки в ServiceReferences.Файл ClientConfig?

Ответ №3:

Проверьте:

  1. адрес конечной точки
  2. DataContract, DataMember, EnumMember атрибуты контракта данных конечной точки
  3. что вы не передаете значение int Enum, которого не существует в Enum
  4. если ваш контракт с данными унаследован от какого-либо класса, проверьте атрибут KnownType
  5. если вы используете ссылку на службу, убедитесь, что она обновлена