Служба Windows WCF, метаданные службы могут быть недоступны - PullRequest
1 голос
/ 17 июня 2011

Привет, есть библиотека служб WCF с этой конфигурацией:

<?xml version="1.0"?>
<configuration>

  <system.serviceModel>
    <services>
      <service behaviorConfiguration="Default" name="ComDocs.ControlServerServiceLibary.Concrete.TokenService">
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8080/TokenService" />
          </baseAddresses>
        </host>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
        <endpoint address="basic" binding="basicHttpBinding" contract="ComDocs.ControlServerServiceLibary.Abstract.ITokenService" />        
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="Default">
          <serviceMetadata httpGetEnabled="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

Если я собрал его в отладке, все отлично работает на локальном хосте.Но если я создаю библиотеку службы Windows с такой же конфигурацией:

public partial class TokenService : ServiceBase
    {
        ServiceHost _host = null;

        public TokenService()
        {
            InitializeComponent();
        }

        protected override void OnStart(string[] args)
        {
            Trace.WriteLine("Starting Token Service...");

            _host = new ServiceHost(typeof(TokenService));        
            _host.Open();
        }

        protected override void OnStop()
        {
            Trace.WriteLine("Shutting down Token Service...");

            if (_host != null)
            {
                _host.Close();
                _host = null;
            }
        }

    }

Установите ее с помощью InstallUtil и запустите:

enter image description here

, но ошибка:

enter image description here

1 Ответ

1 голос
/ 17 июня 2011

Я подозреваю, что эта строка является виновником.

_host = new ServiceHost(typeof(TokenService)); 

TokenService - это ваш Windows класс обслуживания, а не * WCF класс обслуживания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...