2013-02-06 7 views
0

편집 : 자세한 내용은 : 내 문제에 대한추가 자격 증명

조금 더 많은 정보 :

나는 WCF 서비스에 비동기 이벤트를 보낼 수있는 서비스 버스를 사용합니다. 이 구성을 사용하는 고객이 있습니다.

<client> 
    <endpoint address="sb://[Server].[Domain]/NameSpace/eventqueue" 
    behaviorConfiguration="securityBehavior" binding="netMessagingBinding" 
    bindingConfiguration="messagingBinding" contract="xxx.IEventQueueService" 
    name="Subscriber" /> 
</client> 

Google 자체 도메인의 가상 서버입니다.

는 동작이며 bindingConfig :

<behavior name="securityBehavior"> 
      <transportClientEndpointBehavior> 
      <tokenProvider> 
       <windowsAuthentication> 
       <stsUris> 
        <stsUri value="https://[Server].[Domain]:9355/[Namespace]" /> 
       </stsUris> 
       </windowsAuthentication> 
      </tokenProvider> 
      </transportClientEndpointBehavior> 
     </behavior> 

     <netMessagingBinding> 
     <binding name="messagingBinding" closeTimeout="00:03:00" openTimeout="00:03:00" receiveTimeout="00:03:00" sendTimeout="00:03:00" sessionIdleTimeout="00:01:00" prefetchCount="-1"> 
      <transportSettings batchFlushInterval="00:00:01" /> 
     </binding> 
     </netMessagingBinding> 

그리고 내 WCF 서비스는 동일한 구성을 사용하고 있습니다 :

<services> 
    <service name="xxx.EventQueueService"> 
    <endpoint address="sb://[SERVER].[DOMAIN]/Namespace/eventqueue" 
     behaviorConfiguration="securityBehavior" binding="netMessagingBinding" 
     bindingConfiguration="messagingBinding" name="EventQueueClientService" 
     contract="xxx.IEventQueueService" /> 
    <host> 
     <baseAddresses> 
     <add baseAddress="http://localhost:8732/xxx.ExternalServices/EventQueueService" /> 
     </baseAddresses> 
    </host> 
    </service> 

</services> 

내 개발 컴퓨터에서 내 프로젝트를 실행하는 경우이 잘 작동합니다. 하지만 이제는 서비스 버스와 동일한 서버에 배포하고 싶습니다. http://msdn.microsoft.com/en-us/library/microsoft.servicebus.configuration.windowselement.aspx

그러나이 두 가지 옵션이 작동하지 않습니다 : 좋아, 나는이 웹 페이지를 발견 :

<windowsAuthentication userName="xxx" password="xxx" domain="xxx"> 

System.ArgumentNullException: Value cannot be null. 
Parameter name: s 
    at System.Convert.FromBase64String(String s) 
    at Microsoft.ServiceBus.SharedSecretTokenProvider.DecodeSecret(String issuerSecret) 
    at Microsoft.ServiceBus.Description.SharedSecretCredential.CreateTokenProvider() 
    at Microsoft.ServiceBus.Description.TransportClientCredentialBase.get_TokenProvider() 
    at Microsoft.ServiceBus.TransportClientEndpointBehavior.get_TokenProvider() 
    at Microsoft.ServiceBus.Messaging.NetMessagingTransportBindingElement.CreateMessagingFactorySettings(BindingContext context) 
    at Microsoft.ServiceBus.Messaging.Channels.ServiceBusChannelListener`1..ctor(BindingContext context, NetMessagingTransportBindingElement transport) 
    at Microsoft.ServiceBus.Messaging.NetMessagingTransportBindingElement.BuildChannelListener[TChannel](BindingContext context) 
    at System.ServiceModel.Channels.Binding.BuildChannelListener[TChannel](Uri listenUriBaseAddress, String listenUriRelativeAddress, ListenUriMode listenUriMode, BindingParameterCollection parameters) 
    at System.ServiceModel.Description.DispatcherBuilder.MaybeCreateListener(Boolean actuallyCreate, Type[] supportedChannels, Binding binding, BindingParameterCollection parameters, Uri listenUriBaseAddress, String listenUriRelativeAddress, ListenUriMode listenUriMode, ServiceThrottle throttle, IChannelListener& result, Boolean supportContextSession) 
    at System.ServiceModel.Description.DispatcherBuilder.BuildChannelListener(StuffPerListenUriInfo stuff, ServiceHostBase serviceHost, Uri listenUri, ListenUriMode listenUriMode, Boolean supportContextSession, IChannelListener& result) 
    at System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost(ServiceDescription description, ServiceHostBase serviceHost) 
    at System.ServiceModel.ServiceHostBase.InitializeRuntime() 
    at System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout) 
    at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) 
    at Microsoft.Tools.SvcHost.ServiceHostHelper.OpenService(ServiceInfo info) 

그리고

<windowsAuthentication> 

<userName value="xxx"> 

= 그리고 그 ...

올드 편집

실패 > "userName"속성이 ConfigurationElement가 아닙니다.

+0

당신이 당신의 웹 응용 프로그램에서 사용하는 -Name -ManageUsers - SBNamespace 설정? NuGet로부터의 –

+0

1.8.0.0. (Windows Server 용 서비스 버스 1.0) –

답변

1

이 해결 방법을 찾았습니다. 흠집.

응용 프로그램을 배포 할 때 IISPool (또는 가장 한 사용자)의 소유자도 Service Bus 네임 스페이스의 ManagedUsers 구성원인지 확인하십시오. Get-SBNamespace -Name으로 확인할 수 있습니다.

네임 스페이스에 사용자를 추가하십시오 servicebus의 DLL의 버전