Проблема с хостингом WCF на Mono - PullRequest
4 голосов
/ 21 июля 2011

Я пытаюсь разместить простое приложение с одним файлом .aspx, .asmx и .svc каждый.Я следовал приведенному ниже руководству, чтобы добиться хостинга (так как я очень новичок в мире Linux, потребовалось время, чтобы понять это!):

http://www.mono -project.com / Mod_mono # Manual_Mod_Mono_Configuration

После всех хостингов я могу получить доступ к файлам aspx и asmx.Но когда я пытаюсь получить доступ к файлу svc, я получаю следующую ошибку:

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

или

HttpListenerContext не соответствует ни одному из зарегистрированных каналов

У меня есть довольно прямая конечная точка службы, определенная в моем web.config, которая выглядит следующим образом:

  <system.serviceModel>
<services>
  <service name="TestWCFService">
    <endpoint address="http://localhost/MonoTest/TestWCFService.svc" binding="basicHttpBinding"
              contract="MonoTest.ITestWCFService"></endpoint>
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />

Не могли бы вы сказать мне, что я делаю неправильно?

Примечание. Я использовал MS VS 2010 для создания этого проекта, а затем опубликовал его.Опубликованный каталог копируется в среду Apache / Linux.WCF не использует какой-либо сложный тип.Я использую Mono версии 2.8.2

ОБНОВЛЕНИЕ Обновление: я пытался использовать 2.10.2 Mono.Эта ошибка исчезла, и теперь я сталкиваюсь с новой:

XmlSchema error: Named item http://tempuri.org/:DoWork was already contained in the schema object table. Consider setting MONO_STRICT_MS_COMPLIANT to 'yes' to mimic MS implementation. Related schema item SourceUri: , Line 0, Position 0.

Ответы [ 2 ]

5 голосов
/ 08 сентября 2011

После нескольких недель исследований и разработок я понял это.По какой-то причине я не могу заставить службу WSDL работать (что означает, что я не могу получить доступ к .svc из браузера).Однако служба работает нормально, когда я пытаюсь получить к ней доступ с помощью Channel Factory.

Так что я реализовал все в Channel Factory (для моего приложения Silverlight), и сейчас все работает нормально.Я до сих пор не уверен, как заставить WSDL работать, но для меня это не так важно.

0 голосов
/ 16 декабря 2014

Vinod - конечная точка MEX отсутствует в вашей конфигурации. Вот почему вы не получаете файл WSDL. Посмотрите эту статью http://blogs.microsoft.co.il/idof/2011/08/10/wsdl-vs-mex-knockout-or-tie/

...