2011-08-31 11 views
13

La nostra applicazione è ospitata in IIS 7.0. Espone gli endpoint sul protocollo net.tcp. Ma abbiamo continuato a correre nella seguente eccezione:Il servizio net.tcp non è disponibile per il protocollo dell'indirizzo

EndpointNotFoundException: Il messaggio non potrebbe essere inviato perché il servizio presso l'indirizzo dell'endpoint 'net.tcp: //localhost/xxx/service.svc' non è disponibile per il protocollo dell'indirizzo.

Abbiamo controllato i seguenti posti per le possibili cause.

  • servizio Attivazione processo Windows è in esecuzione su OK
  • servizio Net.Tcp adattatore Listener è OK.
  • Il servizio di condivisione porta Net.Tcp è OK.
  • Abbiamo creato il binding net.tcp per l'applicazione Web.
  • Il protocollo net.tcp è abilitato per l'applicazione Web come di seguito. net.tcp protocol is enabled

Ho provato a ripristinare IIS dopo aver controllato tutti i posti sopra. Continua a non funzionare.

Questo mi sta uccidendo. Spero che qualcuno possa darmi qualche suggerimento.

Ho cercato molto. Sembra che questo sia un problema molto comune che non è stato risolto perfettamente. Penso che sia ora di finire questo dolore nel culo.

Grazie mille!

risposta

4

È difficile dire ma su quale porta si sta tentando di connettersi?

Assicurarsi che la porta sia disponibile e che nient'altro la stia utilizzando.

Se si utilizza un proxy è necessario aggiungere il sotto così:

...... 
<httpTransport 
     maxBufferPoolSize="4194304" 
     maxBufferSize="1048576" 
     maxReceivedMessageSize="1048576" 
     proxyAddress="http://127.0.0.1.:8888 
     useDefaultWebProxy="false" 
    /> 
    </binding> 
</customBinding> 
+0

Sulla base del messaggio di eccezione, sembra che il protocollo net.tcp non funziona. Ma grazie, controllerò il numero della porta nel mio firewall. – smwikipedia

+2

rileggo la tua risposta. E sì, c'è un legame di un altro sito Web che utilizza la stessa porta net.tcp. Ma abbastanza strano, il sito è ** fermato **, e anche l'app_pool è ** fermato **. Questo è molto diverso dall'esperienza HTTP, dove posso condividere 80 porte tra più siti web purché solo uno sia online. Dopo aver rimosso l'altro binding net.tcp o modificato in una porta diversa. E poi ** resettare IIS **. Il servizio problematico è OK. E si noti che IIS deve essere ripristinato. – smwikipedia

+0

Sono curioso di sapere perché i protocolli HTTP e net.tcp si comportano in modo così diverso. È perché il protocollo HTTP è controllato da IIS, mentre net.tcp non lo è (non sono sicuro di chi lo controlla, forse il servizio di attivazione dei processi di Windows). E i 2 protocolli sono controllati in modo diverso. – smwikipedia