2009-08-25 3 views
4

Vista 컴퓨터의 웹 응용 프로그램에서 netNamedPipeBinding을 사용하여 WCF 서비스를 호스팅하려고합니다. 다음과 같이 http://msdn.microsoft.com/en-us/library/ms731053.aspxnetNamedPipeBinding 및 Windows Vista에서 WAS를 사용하여 웹 응용 프로그램에서 WCF 서비스를 호스팅하는 방법

내가 서비스를 구성 :이 문서에 설명 된대로

나는 비 HTTP 서비스 활성화를 사용할 수

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

내가 IIS에합니다 (SVC는 파일을 찾아,하지 비주얼 스튜디오의 웹 서버) 나는이 메시지를 얻을 :

[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 아니다 지. 나는 somehting을 잘못하고 있는지 어떤 몸든지 알 는가?

답변

5

정확하게 그 기사를 따르거나 명령 줄에서 'net.tcp'의 인스턴스를 'net.pipe'로 바꾸셨습니까? 해당 웹 사이트 및 가상 디렉터리에 대한 net.pipe 바인딩을 활성화하지 않았을 수 있습니다.

+0

안녕하세요, 저는 net.cp와 관련이 없다고 생각하여 net.tcp 항목을 무시했습니다. 하지만 apparantly 내 웹 사이트에 대한 net.pipe 바인딩을 활성화해야합니다. 나는 지금 그것에있다. – veertien

+0

네, 그 트릭을 했어! 고마워! – veertien

+0

"WAS 구성 방법"기사가 이상하게도 net.pipe 바인딩을 설정하는 메니언이 아닙니다. 그러나이 예제 기사에서 설명합니다. http://msdn.microsoft.com/en-us/library/ms752253.aspx – veertien

관련 문제