認証にMembershipProvider
を使用するWCFサービスを作成しようとしています。それは内部サービスなので、私は現在トランスポートレベルのセキュリティ(HTTPS)を適用することに興味がなく、今のところ証明書なしでこれを行うにはします。さらに、これはサービスを公開することを複雑にし、後でこれを行うことを希望します。私もMembershipProvider
を設定せずに(基本構成を構築してきましたが、WCFは私に次の例外投げ続けて:。WCF:サービス証明書が提供されていません。 ServiceCredentialsでサービス証明書を指定する
サービス証明書が提供されていないがServiceCredentialsにサービス証明書 を指定
。ここに私の設定です:
<system.serviceModel>
<bindings>
<ws2007HttpBinding>
<binding name="Service1WS2007HttpBindingConfig">
<security mode="Message">
<transport clientCredentialType="None" />
<message clientCredentialType="UserName" />
</security>
</binding>
</ws2007HttpBinding>
</bindings>
<services>
<service name="WcfService1.Service1">
<endpoint address="http://localhost:9800/Service1.svc"
binding="ws2007HttpBinding"
bindingConfiguration="Service1WS2007HttpBindingConfig"
contract="WcfService1.IService1" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="false">
<serviceActivations>
<add relativeAddress="Service1.svc" service="WcfService1.Service1" />
</serviceActivations>
</serviceHostingEnvironment>
</system.serviceModel>
例外のスタックトレース:
[InvalidOperationException:サービス証明書が提供されていません。 ServiceCredentialsにサービス証明書を指定します。 ]
System.ServiceModel.Security.ServiceCredentialsSecurityTokenManager.CreateServerX509TokenProvider() 12382737 System.ServiceModel.Security.ServiceCredentialsSecurityTokenManager.CreateLocalSecurityTokenProvider(RecipientServiceModelSecurityTokenRequirement recipientRequirement)+63
System.ServiceModel.Security.ServiceCredentialsSecurityTokenManager.CreateSecurityTokenProvider(SecurityTokenRequirement 要件)+ 48
System.ServiceModel.Security.ServiceCredentialsSecurityTokenManager.CreateTlsnegoServerX509TokenProvider(RecipientServiceModelSecurityTokenRequirement recipientRequirement)191
System.ServiceModel.Securit y.ServiceCredentialsSecurityTokenManager.CreateTlsnegoSecurityTokenAuthenticator(RecipientServiceModelSecurityTokenRequirement recipientRequirement、ブールrequireClientCertificate、 SecurityTokenResolver & sctResolver)683
System.ServiceModel.Security.ServiceCredentialsSecurityTokenManager.CreateSecurityTokenAuthenticator(SecurityTokenRequirement tokenRequirement、SecurityTokenResolver & outOfBandTokenResolver) 12383208 System.ServiceModel.Security.SessionRenewSecurityTokenManager .CreateSecurityTokenAuthenticator(SecurityTokenRequirement tokenRequirement、SecurityTokenResolver & outOfBandTokenResolver)+81
System.S erviceModel.Security.SymmetricSecurityProtocolFactory.OnOpen(のTimeSpan タイムアウト)181
System.ServiceModel.Security.WrapperSecurityCommunicationObject.OnOpen(のTimeSpan タイムアウト)+21
System.ServiceModel.Channels.CommunicationObject.Open(のTimeSpan タイムアウト)318
System.ServiceModel.Security.SecurityListenerSettingsLifetimeManager.Open(のTimeSpan タイムアウト)94
System.ServiceModel.Channels.SecurityChannelListener`1.OnOpen(のTimeSpan タイムアウト)+240
System.ServiceModel.Channels.CommunicationObject.Open( TimeSpan timeo ut)+318
System.ServiceModel.Dispatcher.ChannelDispatcher。開く時](TimeSpanの タイムアウト)72[InvalidOperationExceptionが: ':// localhostを:HTTP 9800/Service1.svc' でのChannelDispatcher契約(複数可) ' "IssueAndRenewSession"' とは、そのIChannelListenerを開くことができません。 ]
System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(のTimeSpan タイムアウト)118
System.ServiceModel.Channels.CommunicationObject.Open(のTimeSpan タイムアウト)318 System.ServiceModel.ServiceHostBase.OnOpen(のTimeSpan タイムアウト)+ 111
System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan タイムアウト)318
System.ServiceModel.Security.SecuritySessionSecurityTokenAuthenticator.OnOpen(のTimeSpan タイムアウト)131
System.ServiceModel.Security.WrapperSecurityCommunicationObject.OnOpen(のTimeSpan タイムアウト)+21
System.ServiceModel.Channels.CommunicationObject .Open(のTimeSpan タイムアウト)318
System.ServiceModel.Security.CommunicationObjectSecurityTokenAuthenticator.Open(のTimeSpan タイムアウト)+20
System.ServiceModel.Security.SecuritySessionServerSettings.OnOpen(のTimeSpan タイムアウト)792
System.ServiceModel.Security.WrapperSecurityCommunicationObject.OnOpen(のTimeSpan タイムアウト)+21
System.ServiceModel.Channels.CommunicationObject.Open(のTimeSpan タイムアウト)318
System.ServiceModel.Security.SecurityListenerSettingsLifetimeManager.Open(のTimeSpan タイムアウト)148
System.ServiceModel.Channels.SecurityChannelListener`1.OnOpen(のTimeSpan タイムアウト)+240
System.ServiceModel.Channels.CommunicationObject.Open(のTimeSpan タイムアウト)318
System.ServiceModel.Dispatcher.ChannelDispatcher .OnOpen(TimeSpan タイムアウト)72[InvalidOperationExceptionが: 'のhttp:// localhostを:9800/Service1.svc' でのChannelDispatcher契約(S)と ' "IService1は"' そのIChannelListenerを開くことができません である。]
System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpen(のTimeSpan タイムアウト)118
System.ServiceModel.Channels.CommunicationObject.Open(のTimeSpan タイムアウト)318 System.ServiceModel.ServiceHostBase.OnOpen(のTimeSpan タイムアウト)111
System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan タイムアウト)+318
System.ServiceModel.HostingManager.ActivateService(文字列 normalizedVirtualPath)206
System.ServiceModel.HostingManager.EnsureServiceAvailable(文字列 normalizedVirtualPath)651[ServiceActivationException:サービス '/Service1.svcは' ことができませんコンパイル中に例外のために起動されました。例外 メッセージは次のとおりです。 'のhttp:// localhostを:9800/Service1.svc' でのChannelDispatcher契約(S)と ' "IService1は、"' そのIChannelListenerを開くことができません..]
System.Runtime.AsyncResult 。終了(IAsyncResultインター結果)688590
System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResultインター 結果)190
System.ServiceModel.Activation.HostedHttpRequestAsyncResult.ExecuteSynchronous(のHttpApplication コンテキスト、文字列routeServiceVirtualPath、ブールflowContext、ブール ensureWFService )234
System.ServiceModel.Activation.HttpModule.ProcessRequest送信者(オブジェクト、のEventArgs電子)+359
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 148のSystem.Web。 HttpApplication.ExecuteStep(IExecutionStepステップ、ブール値&)同期)+75
私の設定には何が問題なのですか?これをどのように解決できますか?
[このブログの記事](http://webservices20.blogspot.nl/2008/11/introducing-wcf-clearsernamebinding.html)は答えを示しています。 –
http://webservices20.blogspot.nl/2008/11/introducing-wcf-clearusernamebinding.html – Steven
セキュリティを完全に無効にしたくないと思っていますか?そうすれば、wshttpバインディングのメッセージセキュリティは次のように無効になります。 '' –