2009-08-25 18 views
4

Ich versuche, einen WCF-Dienst mit netNamedPipeBinding in einer Webanwendung auf einem Vista-Computer zu hosten.So hosten Sie einen WCF-Dienst in einer Webanwendung mit netNamedPipeBinding und WAS unter Windows Vista

aktiviert ich die Nicht-HTTP-Service-Aktivierung, wie in diesem Artikel beschrieben: http://msdn.microsoft.com/en-us/library/ms731053.aspx

ich den Dienst wie folgt konfiguriert:

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

Als ich in die SVC-Datei (auf IIS durchsuchen, nicht Visual Studio Webserver) bekomme ich diese Meldung:

[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 

ich für eine schnellere und einfachere Bereitstellung der Hoffnung wurde mit, aber diese Ausnahme ist nicht helpin G. Weiß irgendjemand, ob ich etwas falsch mache?

Antwort

5

Sind Sie diesem Artikel genau gefolgt oder haben Sie Instanzen von 'net.tcp' in den Befehlszeilen durch 'net.pipe' ersetzt? Es kann nur sein, dass Sie die net.pipe-Bindung für diese Website und Ihr virtuelles Verzeichnis nicht aktiviert haben.

+0

Hallo, ich habe das net.tcp Zeug ignoriert, weil ich dachte, dass das für net.pipe nicht relevant war. Aber ich muss net.pipe verbindlich für meine Website aktivieren. Ich bin jetzt dabei. – veertien

+0

Ja, das hat den Trick gemacht! Es funktioniert jetzt, danke! – veertien

+0

Seltsamerweise muss der Artikel "Wie konfiguriert man WAS" keine net.pipe-Bindung einrichten. Aber wird in diesem Beispielartikel erklärt: http://msdn.microsoft.com/en-us/library/ms752253.aspx – veertien