J'essaye d'héberger un service WCF avec netNamedPipeBinding dans une application web sur une machine Vista.Comment héberger un service WCF dans une application Web avec netNamedPipeBinding et WAS sous Windows Vista
Je permis à l'activation du service non-HTTP comme décrit dans cet article: http://msdn.microsoft.com/en-us/library/ms731053.aspx
J'ai configuré le service comme suit:
<endpoint address="net.pipe://myservice"
binding="netNamedPipeBinding"
bindingConfiguration="MyService_NamedPipeBindingConfig"
contract="ICMyService" />
<netNamedPipeBinding>
<binding name="MyService_NamedPipeBindingConfig"
maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647">
<security mode="None">
<transport protectionLevel="None" />
</security>
</binding>
</netNamedPipeBinding>
Lorsque je navigue dans le fichier .svc (sur IIS, non le serveur Web de Visual studio) Je reçois ce message:
[InvalidOperationException: The protocol 'net.pipe' is not supported.]
System.ServiceModel.Activation.HostedTransportConfigurationManager.InternalGetConfiguration(String scheme) +11461251
System.ServiceModel.Channels.TransportChannelListener.OnOpening() +84
System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) +229
System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(TimeSpan timeout) +72
[InvalidOperationException: The ChannelDispatcher at 'net.pipe://myservice' with contract(s) '"IMyService"' is unable to open its IChannelListener.]
System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(TimeSpan timeout) +118
System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) +261
System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout) +107
System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) +261
System.ServiceModel.HostingManager.ActivateService(String normalizedVirtualPath) +121
System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath) +479
[ServiceActivationException: The service '/myservicehost/myservice.svc' cannot be activated due to an exception during compilation. The exception message is: The ChannelDispatcher at 'net.pipe://myservice' with contract(s) '"IMyService"' is unable to open its IChannelListener..]
System.ServiceModel.AsyncResult.End(IAsyncResult result) +11536522
System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +194
System.ServiceModel.Activation.HostedHttpRequestAsyncResult.ExecuteSynchronous(HttpApplication context, Boolean flowContext) +176
System.ServiceModel.Activation.HttpModule.ProcessRequest(Object sender, EventArgs e) +278
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +68
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
J'espérais pour un déploiement plus rapide et plus facile en utilisant WAS, mais cette exception n'est pas helpin g. Est-ce que n'importe quel corps sait si je fais quelque chose de mal?
Salut, j'ai ignoré les trucs net.tcp parce que je pensais que ce n'était pas pertinent pour net.pipe. Mais apparemment, je dois activer la liaison net.pipe pour mon site web. Je suis dessus maintenant. – veertien
Oui, ça a fait l'affaire! Cela fonctionne maintenant, merci! – veertien
Curieusement, l'article "comment configurer WAS" ne met pas en place une liaison net.pipe. Mais est expliqué dans cet article d'exemple: http://msdn.microsoft.com/en-us/library/ms752253.aspx – veertien