Проблемы конечной точки WCF - PullRequest
0 голосов
/ 10 мая 2011

У меня есть WCF в VB, который должен быть размещен в службе Windows. Я управлял программой установки, поэтому сервис фактически устанавливается. Но, когда я пытаюсь запустить службу, я получаю следующую ошибку:

«Служба на локальном компьютере запускается, а затем останавливается. Некоторые службы автоматически останавливаются, если у них нет работы, например служба журналов производительности и оповещений.»

Проверка просмотра событий дает мне следующее:

Служба не может быть запущена. System.InvalidOperationException: Не удалось найти базовый адрес, который соответствует схеме http для конечной точки с привязкой WSHttpBinding. Схемы зарегистрированных базовых адресов: []. в ... в ... в ...

Что, я полагаю, поставило бы мою проблему где-то здесь:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.diagnostics>
    <sources>
        <!-- This section defines the logging configuration for My.Application.Log -->
        <source name="DefaultSource" switchName="DefaultSwitch">
            <listeners>
                <add name="FileLog"/>
                <!-- Uncomment the below section to write to the Application Event Log -->
                <!--<add name="EventLog"/>-->
            </listeners>
        </source>
    </sources>
    <switches>
        <add name="DefaultSwitch" value="Information" />
    </switches>
    <sharedListeners>
        <add name="FileLog"
             type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" 
             initializeData="FileLogWriter"/>
        <!-- Uncomment the below section and replace APPLICATION_NAME with the name of your application to write to the Application Event Log -->
        <!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
    </sharedListeners>
</system.diagnostics>


  <system.serviceModel>
<services>
  <service name="ExStreamWCF.Service1" behaviorConfiguration="ExStreamWCF.Service1Behavior">
    <!-- Service Endpoints -->
    <endpoint address="" binding="wsHttpBinding" contract="ExStreamWCF.IService1">
      <!--
          Upon deployment, the following identity element should be removed or replaced to reflect the 
          identity under which the deployed service runs.  If removed, WCF will infer an appropriate identity 
          automatically.
      -->
      <identity>
        <dns value="localhost"/>
      </identity>
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="ExStreamWCF.Service1Behavior">
      <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
      <serviceMetadata httpGetEnabled="true"/>
      <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
      <serviceDebug includeExceptionDetailInFaults="false"/>
    </behavior>
  </serviceBehaviors>
</behaviors>
  </system.serviceModel>



</configuration>

Однако, как абсолютный нуб, я понятия не имею, что может быть не так. Это все действительно ново для меня. Любое направление будет с благодарностью!

Спасибо, Jason

fdsa

Ответы [ 2 ]

0 голосов
/ 10 мая 2011

добавить базовый адрес как:

<host>          
  <baseAddresses>            
    <add baseAddress="net.tcp://localhost/ExStreamWCF" /> 
  </baseAddresses>        
</host>
0 голосов
/ 10 мая 2011

Поскольку вы являетесь хостингом, вам необходимо указать адрес для прослушивания вашей службы. Если вы размещены в IIS, IIS контролирует адрес, но в автономных сценариях вы должны указать адрес в этом элементе конфигурации:

<endpoint address="" binding="wsHttpBinding" contract="ExStreamWCF.IService1">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...