2011-01-26 37 views
1

ファイアウォールを越えてサーバーにインストールされているワークフローWCFサービス(ServiceDMZ)があります。このサービスは、そのサーバー上のWindowsアカウントで実行されています。アカウント名:DMZDomain \ DMZUserName。ドメイン間のWCF通信

開発マシン(ServiceDev)で実行中の別のワークフローWCFサービスがあります。これは私のWindowsアカウントDevDomain \ DevUserNameで動作する自己ホスト型サービスです。

ServiceDevは、SendおよびRecieveアクティビティでwsHttpContextBindingおよびコンテキスト相関を使用してServiceDMZと通信します。 ServiceDMZは、コールバックアドレスを使用して、タスクの完了後にServiceDevに通信します。

私はServiceDevのSendアクティビティでこのエラーを取得する:

System.ServiceModel.Security.SecurityNegotiationException:呼び出し側がサービスによって認証されませんでした。 ---> System.ServiceModel.FaultException:認証が失敗したため、セキュリティトークンの要求を満たすことができませんでした。 System.ServiceModel.Security.SpurityUtils.ThrowIfNegotiationFault(メッセージメッセージ、EndpointAddressターゲット)のSystem.ServiceModel.Security.IssuanceTokenProviderBase`1.ThrowIfFault(メッセージメッセージ、EndpointAddressターゲット)System.ServiceModel.Security.SspiNegotiationTokenProvider.GetNextOutgoingMessageBody(message incomingMessage、 SspiNegotiationTokenProviderState sspiState)---内部例外スタックトレースの終了--- System.Activities.Runtime.FaultCallbackWrapper.Invoke(NativeActivityFaultContext faultContext、Exception)でSystem.ServiceModel.Activities.InternalSendMessage.OnSendFailure(NativeActivityFaultContextコンテキスト、Exception propagatedException、ActivityInstance propagatedFrom) propagatedException、ActivityInstance propagatedFrom)System.Activities.Runtime.FaultCallbackWrapper.FaultWorkItem.Execute(ActivityExecutorエグゼキュータ、BookmarkManager bookmarkManager)

ServiceDevとServiceDMZのapp.configファイルの設定はどうすればよいですか?

ありがとうございます!

こんにちは、コメントありがとうございます。ここに設定ファイルがあります。これは可能性があり

ServiceDev

<system.serviceModel> 
<services> 
    <service name="ServiceDev" behaviorConfiguration="ServiceDevBehavior"> 
    <host> 
     <baseAddresses> 
     <add baseAddress="http://10.204.78.16:9101/"/> 
     </baseAddresses>   
    </host> 
    <endpoint address="http://10.204.78.16:9101/ServiceDev" binding="wsHttpBinding" contract="IServiceDev" bindingConfiguration="ServiceDevBinding"></endpoint> 
    <endpoint address="http://10.204.78.16:9101/ServiceDev/mex" binding="mexHttpBinding" contract="IMetadataExchange"></endpoint> 
    <endpoint address="http://10.204.78.16:9101/ServiceDevCallback" binding="wsHttpContextBinding" contract="IServiceDevCallback" bindingConfiguration="ClientServiceDMZBinding"></endpoint>   
    </service> 
</services> 
<client> 
    <endpoint address="http://10.169.24.14:9100/ServiceDMZ" binding="wsHttpContextBinding" contract="IServiceDMZ" name="ClientServiceDMZ" bindingConfiguration="ClientServiceDMZBinding"> 
    <identity> 
     <userPrincipalName value="[email protected]"/> 
    </identity> 
    </endpoint> 
</client> 
<bindings> 
    <wsHttpBinding> 
    <binding name="ServiceDevBinding" maxReceivedMessageSize="8388608"> 
     <security> 
     <transport clientCredentialType="Windows" proxyCredentialType="None" realm=""/> 
     <message clientCredentialType="Windows" negotiateServiceCredential="true" algorithmSuite="TripleDesRsa15" establishSecurityContext="true"/> 
     </security> 
    </binding> 
    </wsHttpBinding> 
    <wsHttpContextBinding> 
    <binding name="ClientServiceDMZBinding" clientCallbackAddress="http://10.204.78.16:9101/ServiceDevCallback"> 
     <reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false" /> 
     <security> 
     <message clientCredentialType="Windows" negotiateServiceCredential="true" algorithmSuite="Default"/> 
     <transport clientCredentialType="Windows" proxyCredentialType="None" realm=""/> 
     </security> 
    </binding> 
    </wsHttpContextBinding> 
</bindings> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name="ServiceDevBehavior"> 
     <serviceDebug includeExceptionDetailInFaults="true" httpHelpPageEnabled="true"/> 
     <serviceMetadata httpGetEnabled="true"/> 
     <sqlWorkflowInstanceStore connectionStringName="MySite.Deployment.Data.Providers.WorkflowInstanceStoreProvider" instanceCompletionAction="DeleteNothing" instanceLockedExceptionAction="BasicRetry" instanceEncodingOption="GZip" hostLockRenewalPeriod="00:01:00"/> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<standardEndpoints> 
    <dynamicEndpoint> 
    <standardEndpoint name="ClientServiceDMZDynamicEndpointConfiguration"> 
     <discoveryClientSettings> 
     <endpoint kind="udpDiscoveryEndpoint" endpointConfiguration="ServiceDMZUDPDiscoveryEndpoint"></endpoint> 
     </discoveryClientSettings> 
    </standardEndpoint> 
    </dynamicEndpoint> 
    <udpDiscoveryEndpoint> 
    <standardEndpoint name="ServiceDMZUDPDiscoveryEndpoint" discoveryVersion="WSDiscovery11"> 
    </standardEndpoint> 
    </udpDiscoveryEndpoint> 
</standardEndpoints> 
<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/> 
<diagnostics performanceCounters="All"> 
    <messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" maxMessagesToLog="30000" maxSizeOfMessageToLog="2000000"> 
    </messageLogging> 
</diagnostics> 

ServiceDMZ

<system.serviceModel> 
<services> 
    <service name="ServiceDMZ" behaviorConfiguration="ServiceDMZBehavior"> 
    <host> 
     <baseAddresses> 
     <add baseAddress="http://10.169.24.14:9100/"/> 
     </baseAddresses> 
    </host> 
    <endpoint address="http://10.169.24.14:9100/ServiceDMZ" binding="wsHttpContextBinding" contract="IServiceDMZ" bindingConfiguration="ServiceDMZBinding" behaviorConfiguration="ServiceDMZEndpointBehavior" /> 
    <endpoint address="http://10.169.24.14:9100/ServiceDMZ/mex" binding="mexHttpBinding" contract="IMetadataExchange"></endpoint> 
    <endpoint name="udpDiscovery" kind="udpDiscoveryEndpoint" /> 
    </service> 
</services> 
<bindings> 
    <wsHttpContextBinding> 
    <binding name="ServiceDMZBinding" clientCallbackAddress="http://10.204.78.16:9101/ServiceDevCallback"> 
     <security> 
     <message clientCredentialType="Windows" negotiateServiceCredential="true" algorithmSuite="Default"/> 
     <transport clientCredentialType="Windows" realm="" proxyCredentialType="None"/> 
     </security> 
    </binding> 
    </wsHttpContextBinding> 
</bindings> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name="ServiceDMZBehavior"> 
     <serviceDebug includeExceptionDetailInFaults="true" httpHelpPageEnabled="true"/> 
     <serviceMetadata httpGetEnabled="true"/> 
     <serviceDiscovery> 
     <announcementEndpoints> 
      <endpoint kind="udpAnnouncementEndpoint" /> 
     </announcementEndpoints> 
     </serviceDiscovery> 
    </behavior> 
    </serviceBehaviors> 

    <endpointBehaviors> 
    <behavior name="ServiceDMZEndpointBehavior"> 
     <endpointDiscovery> 
     <scopes> 

     </scopes> 
     </endpointDiscovery> 
    </behavior> 
    </endpointBehaviors> 
</behaviors> 

<standardEndpoints> 
    <udpDiscoveryEndpoint> 
    <standardEndpoint name="ServiceDMZUDPDiscoveryEndpoint" discoveryVersion="WSDiscovery11" maxResponseDelay="00:00:00.600"/> 
    </udpDiscoveryEndpoint> 
</standardEndpoints> 

<diagnostics performanceCounters="All"> 
    <messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" maxMessagesToLog="30000" maxSizeOfMessageToLog="2000000">   
    </messageLogging> 
</diagnostics>  

+0

どの認証方式とセキュリティ設定を使用していますか?あなたの設定を投稿できますか? –

答えて

0

は、部分的に信頼の問題です。セキュリティはWCFが完全な機能を完全に必要とするため、機能のサブセットのみをサポートしています。http://msdn.microsoft.com/en-us/library/bb412186.aspx

Windows認証を使用している場合は、マシンが異なるドメインにあると仮定して、 。

関連する問題