2009-08-25 4 views
4

Я пытаюсь разместить службу WCF с помощью netNamedPipeBinding в веб-приложении на машине Vista.Как разместить службу WCF в веб-приложении с помощью netNamedPipeBinding и WAS в Windows Vista

Я включил активацию услуги, не HTTP, как описано в этой статье: http://msdn.microsoft.com/en-us/library/ms731053.aspx

Я настроил услугу следующим образом:

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

Когда я просматриваю к SVC-файл (на IIS, не студия веб-сервер Visual) Я получаю сообщение:

[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 

Я надеялся для более быстрого и легкого развертывания с помощью WAS, но это исключение не helpin г. Знает ли кто-нибудь, если я ошибаюсь?

ответ

5

Вы в точности исходили из этой статьи или заменили экземпляры 'net.tcp' в командной строке на 'net.pipe'? Возможно, вы не включили привязку net.pipe для этого веб-сайта и вашего виртуального каталога.

+0

Привет, я проигнорировал материал net.tcp, потому что думал, что это не относится к net.pipe. Но apparantly мне нужно включить привязку net.pipe для моего веб-сайта. Я сейчас нахожусь. – veertien

+0

Да, это сделал трюк! Он работает сейчас, спасибо! – veertien

+0

Как ни странно, статья «как настроить WAS» не предусматривает создание привязки net.pipe. Но объясняется в этой статье примера: http://msdn.microsoft.com/en-us/library/ms752253.aspx – veertien