2012-06-27 17 views
5

Estoy tratando de configurar los enlaces net.pipe en el servidor entre 2 procesos (en el mismo cuadro). Tengo todo esto funcionando localmente en Windows 7, pero en el servidor de producción (Windows Server 2008 R2), no funciona.No se puede obtener el enlace net.pipe trabajando en IIS7.5 en Windows Server 2008 R2

puedo comprobar que tengo:

  • ha añadido una unión con el "Sitio Web" IIS (* añadido como la información) net.pipe.
  • Se agregó net.pipe a la lista de enlaces en "configuración avanzada" para el "sitio web" de IIS.

Eso es todo lo que se requiere en mi máquina de desarrollo. ¿Hay algo más que deba hacer?

El error que consigo es de un simple cliente de prueba de aplicación de consola:

Excepción no controlada: System.ServiceModel.EndpointNotFoundException: No hubo extremo de escucha en net.pipe: //nameOfService.svc que podría aceptar el mensaje. Esto a menudo es causado por una dirección incorrecta o acción SOAP. Vea InnerException, si está presente, para más detalles. ---> System.IO.PipeException: 'net.pipe: //nameOfService.svc' El tubo de punto final no se pudo encontrar en su local de machine.`

Aquí hay algunas configuraciones:

Cliente:

<system.serviceModel> 
    <bindings> 
     <netNamedPipeBinding> 
      <binding name="NetNamedPipeBinding_IWebAppNotifyService"> 
       <security mode="None" /> 
      </binding> 
     </netNamedPipeBinding> 
    </bindings> 
    <client> 
     <endpoint address="net.pipe://nameOfService.svc" 
      binding="netNamedPipeBinding" bindingConfiguration="NetNamedPipeBinding_IWebAppNotifyService" 
      contract="ServiceReference2.IWebAppNotifyService" name="NetNamedPipeBinding_IWebAppNotifyService" /> 
    </client> 
</system.serviceModel> 

servidor:

<bindings> 
    <netNamedPipeBinding> 
    <binding name="WebAppNotifyServiceBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" transactionFlow="false" transactionProtocol="OleTransactions" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxBufferSize="65536" maxConnections="10" maxReceivedMessageSize="65536"> 
     <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
     <security mode="None"> 
     </security> 
    </binding> 
    <binding name="ScannerManagerCommandBinding"> 
     <security mode="None" /> 
    </binding> 
    </netNamedPipeBinding> 
</bindings> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name="WebAppNotifyServiceBehavior"> 
     <serviceMetadata httpGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="True" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<services> 
    <service name="MonitoringApp.Notifier.WebAppNotifyService" behaviorConfiguration="WebAppNotifyServiceBehavior"> 
    <host> 
     <baseAddresses> 
     <add baseAddress="net.pipe://nameOfService.svc" /> 
     <add baseAddress="http://nameOfService" /> 
     </baseAddresses> 
    </host> 
    <endpoint address="" binding="netNamedPipeBinding" bindingConfiguration="WebAppNotifyServiceBinding" contract="X.Y.IWebAppNotifyService" /> 
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
    </service> 
</services> 

actualización:

El grupo de aplicaciones asociado al sitio web que aloja el enlace net.pipe se ejecuta bajo el usuario "NetworkService", si eso hace la diferencia.

que han permitido la activación no HTTP en Características de Windows para .NET 3.5.1, aunque esto se ejecuta en .NET 4.

+0

En Características de Windows, que ha permitido a la Fundación de comunicación de Windows Activación no HTTP? –

+0

Intentaste usar WCFTestClient.herramienta exe para verificar tu servicio? –

+0

Una cosa más: como recuerdo, baseAddress debería seguir este formato: {PROTOCOLO}: // SERVER_NAME/SERVICE_NAME, ¿estoy en lo cierto? –

Respuesta

7
  • ¿Ha permitido a los servicios de las ventanas y Net.Pipe Listener AdapterWindows Process Activation Service?
  • ¿Ha habilitado el enlace net.pipe en el nivel del sitio?
  • ¿Ha agregado el protocolo net.pipe en el nivel de vdir?
+0

AAAAAAGHHHHHHHH !!!! Era el servicio de escucha net.pipe :) Muchas gracias, parece que está deshabilitado de forma predeterminada en win server 2008, lo que tendría sentido. –

+0

@MattRoberts: ¡Me alegro de que haya sido útil! :) He enfrentado un problema similar con net.msmq. Listener Adapter activa sus servicios web a través del servicio de activación de procesos. Ambos deberían estar ejecutándose. – abatishchev

Cuestiones relacionadas