Тот же app.config: wcftestclient работает, selfHosting не работает - PullRequest
0 голосов
/ 30 июня 2010

У меня одна и та же конфигурация приложения в обеих программах
A - сам сервис, когда я его запускаю, запускается wcf Test Client.
B - Самостоятельная программа, использующая - new ServiceHost(typeof(MyService)))

вот оно:

<services>
  <service name="MyNameSpace.MyService"
           behaviorConfiguration="MyService.Service1Behavior">
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:5999/MyService"/>
      </baseAddresses>
    </host>
    <endpoint
          binding="basicHttpBinding"
          contract="StorageServiceInterface.IService1"
          bindingConfiguration="MyBasicHttpBinding"
          name="basicEndPoint">

      <identity>
        <dns value="localhost"/>
      </identity>
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
  </service>
</services>


<bindings>
  <basicHttpBinding>
    <binding name="MyBasicHttpBinding">
      <security mode="None">
        <transport clientCredentialType="None" />
      </security>
    </binding>
  </basicHttpBinding>
</bindings>


<behaviors>
  <serviceBehaviors>
    <behavior name="HeziService.Service1Behavior">         
      <serviceMetadata httpGetEnabled="true"/>          
      <serviceDebug includeExceptionDetailInFaults="true"/>
    </behavior>
  </serviceBehaviors>
</behaviors>

клиент использует ClientBase<StorageServiceInterface.IService1>
Клиентский app.config:

<system.serviceModel> 
    <client>
        <endpoint address="http://myIp/MyService"
                  binding="basicHttpBinding"
                  contract="StorageServiceInterface.IService1">                
        </endpoint>
    </client>
</system.serviceModel>

когда я запускаю программу selfhost и выполняю host.open ()
он открывает его, но когда я пытаюсь вызвать метод, он говорит мне, что:

"No connection could be made because the target machine actively refused it 10.0.0.1:5999"

Конечно, когда служба запускается из тестового клиента WCF, все работает. как это могло быть ??

заранее спасибо

Ответы [ 2 ]

0 голосов
/ 30 июня 2010

что-то странное:

Относительно marc_s, которые просят меня написать мой прог-код selfhost ..

я использовал:

private void m_startServiceToolStripMenuItem_Click(object sender, EventArgs e)  
{  
    using (Host = new ServiceHost(typeof(MyNameSpace.MyService)))  
    {  
        Host.Open();  
    }  
}  

перед тем, как добавить его к вопросу, я попытался изменить его без using:

private void m_startServiceToolStripMenuItem_Click(object sender, EventArgs e)  
{  
    Host = new ServiceHost(typeof(yNameSpace.MyService));  
    Host.Open();  
}

и теперь работает !!

но как-то раньше это работало ...
спасибо всем в любом случае: -)

0 голосов
/ 30 июня 2010

Просто угадайте - как насчет добавления адреса к конечной точке на стороне сервера:

<endpoint address="" .... >

Да, базовый адрес в основном определяет весь адрес - но вы все равно должны добавить адрес к конечной точке службы - дажеесли он пуст.

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