2011-02-03 15 views
5

Ho una situazione in cui non posso ospitare un servizio utilizzando net.tcp in Windows 7 ma funziona bene sul server Windows 2008. Ho permesso era, e fatto le stesse impostazioni in entrambe le finestre 7 e server Windows, ma per qualche motivo non funziona in Windows 7. L'errore che ottengo sul lato client è:Esiste qualche differenza nell'hosting di servizi wcf net.tcp in Windows 7 e Windows 2008 Server in IIS?

System.ServiceModel.EndpointNotFoundException: The message could not be dispatched because the service at the endpoint address 'net.tcp://localhost:908/TcpTest/MySuperService.svc' is unavailable for the protocol of the address. 

Server stack trace: 
    at System.ServiceModel.Channels.ConnectionUpgradeHelper.DecodeFramingFault(ClientFramingDecoder decoder, IConnection connection, Uri via, String contentType, TimeoutHelper& timeoutHelper) 
    at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.SendPreamble(IConnection connection, ArraySegment`1 preamble, TimeoutHelper& timeoutHelper) 
    at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.DuplexConnectionPoolHelper.AcceptPooledConnection(IConnection connection, TimeoutHelper& timeoutHelper) 
    at System.ServiceModel.Channels.ConnectionPoolHelper.EstablishConnection(TimeSpan timeout) 
    at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.OnOpen(TimeSpan timeout) 
    at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) 
    at System.ServiceModel.Channels.ServiceChannel.OnOpen(TimeSpan timeout) 
    at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) 
    at System.ServiceModel.Channels.CommunicationObject.Open() 

E nel registro eventi ho ottenuto il seguente errore per il servizio:

An error occurred while trying to listen for the URL '/LM/W3SVC/9/ROOT/TcpTest'. This worker process will be terminated. 
Sender Information: net.tcp 
Exception: System.ServiceModel.WasHosting.TcpAppDomainProtocolHandler/24230272 
Process Name: System.ServiceModel.CommunicationException: The TransportManager failed to listen on the supplied URI using the NetTcpPortSharing service: . 
    at System.ServiceModel.Channels.SharedConnectionListener.SharedListenerProxy.Register() 
    at System.ServiceModel.Channels.SharedConnectionListener.SharedListenerProxy.Open(Boolean isReconnecting) 
    at System.ServiceModel.Channels.SharedConnectionListener.StartListen(Boolean isReconnecting) 
    at System.ServiceModel.Channels.SharedTcpTransportManager.OnOpenInternal(Int32 queueId, Guid token) 
    at System.ServiceModel.Activation.HostedTcpTransportManager.Start(Int32 queueId, Guid token, Action messageReceivedCallback) 
    at System.ServiceModel.WasHosting.TcpAppDomainProtocolHandler.OnStart() 
    at System.ServiceModel.WasHosting.BaseAppDomainProtocolHandler.StartListenerChannel(IListenerChannelCallback listenerChannelCallback) 
Process ID: w3wp 

il web.config è esattamente lo stesso per il servizio su entrambi i Windows 7 e Windows 2008. Eventuali indizi?

risposta

0

Sembra che funzioni. Ora ho un nuovo computer e l'ho provato di nuovo senza problemi. Quindi dovrebbe funzionare bene per ospitare net.tcp su Win 7 con IIS7.

0

Immagino che tu l'abbia già risolto da ... Era il caso con portsharing non abilitato? http://msdn.microsoft.com/en-us/library/aa395195.aspx

+0

In realtà non l'ho fatto funzionare sulla mia macchina, ho dovuto distribuirlo sul server di test per farlo funzionare. –

+0

e non era la condivisione delle porte, dal momento che l'ho configurato. –

9

ho avuto questo stesso problema, in cui il messaggio di eccezione si conclude in

... NetTcpPortSharing service: . 

che dà idea di dove andare da lì.

Si è scoperto che il servizio Net.Tcp adattatore Listener stava indicando .NET 3 e il servizio Condivisione porta Net.Tcp stava indicando .NET 4

ero in grado di risolvere rapidamente eseguendo

c:\Windows\Microsoft.NET\Framework64\v4.0.30319\ServiceModelReg.exe -r 
+0

Potrebbe essere la soluzione, non ho più quel server per verificarlo. –

+0

cos'è lo strumento da riga di comando? cosa fa -r? Come hai trovato che un servizio puntava a 3 e l'altro a 4? – MorganTiley

+0

Ahh vedo - se si guarda il percorso del file dei servizi si può vedere uno sta puntando a v3 mentre l'altro è v4. Ho eseguito il comando e l'ho risolto. Grazie Hortman! – MorganTiley

Problemi correlati