Есть ли какая-либо разница в размещении служб net.tcp wcf под Windows 7 и Windows 2008 Server в IIS? - PullRequest
5 голосов
/ 03 февраля 2011

У меня есть ситуация, когда я не могу разместить службу с помощью net.tcp под Windows 7, но она отлично работает на сервере Windows 2008. Я включил WAS и установил одинаковые настройки как в Windows 7, так и в Windows Server, но по некоторым причинам он не работает в Windows 7. Ошибка на стороне клиента:

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()

И в журнале событий я получил следующую ошибку для сервиса:

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

Файл web.config абсолютно одинаков для службы как в Windows 7, так и в Windows 2008. Любые подсказки?

Ответы [ 3 ]

9 голосов
/ 14 октября 2011

У меня была такая же проблема, в которой сообщение об исключении заканчивается на

... NetTcpPortSharing service: .

, который не дает подсказки, куда идти дальше.

Оказалось, что Net.TcpСлужба адаптера прослушивателя указывала на .NET 3, а служба общего доступа к портам Net.TCP указывала на .NET 4

Я смог быстро исправить это, запустив

c:\Windows\Microsoft.NET\Framework64\v4.0.30319\ServiceModelReg.exe -r
0 голосов
/ 17 июня 2011

Кажется, это работает. У меня теперь новый компьютер, и я попробовал его снова без проблем. Так что он должен нормально работать для размещения net.tcp на Win 7 с IIS7.

0 голосов
/ 09 апреля 2011

Я думаю, вы уже решили это с тех пор ... Был ли случай с разделением портов не включен? http://msdn.microsoft.com/en-us/library/aa395195.aspx

...