2011-07-11 9 views
0

私のWCFサービスをWindows認証できないWCFとwindows認証が動作しない

匿名を許可しても問題はありません。

、私はまだ、私は試してみて、私がやっているものを検証するためにWCFサービス構成エディターを使用している運をVS 2010

を問題にしない場合は2008 R2の標準SP1 は、IIS 7.5をWindows上で.NET 3.5を実行していますよ

私は私のweb.configファイルが

<system.serviceModel> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/> 

    <bindings> 
     <basicHttpBinding> 
     <binding name="AmjBasicHttpEndpointBinding"> 
      <security mode="None"> 
      <transport clientCredentialType="Windows" /> 
      </security> 
     </binding> 
     </basicHttpBinding> 

    </bindings> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="SMS.Services.BEIMBehavior"> 
      <serviceMetadata httpGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="true" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <services> 
     <service behaviorConfiguration="SMS.Services.BEIMBehavior" name="SMS.Services.BEIM"> 
     <endpoint address="" binding="basicHttpBinding" bindingConfiguration="AmjBasicHttpEndpointBinding" 
      name="BeimServices" contract="SMS.Services.IBEIM"> 
      <identity> 
      <dns value="localhost" /> 
      </identity> 
     </endpoint> 
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
     </service> 
    </services> 

    </system.serviceModel> 
でまともな待ち時間の後、20〜30秒

Security settings for this service require 'Anonymous' Authentication but it is not enabled for the IIS application that hosts this service. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.NotSupportedException: Security settings for this service require 'Anonymous' Authentication but it is not enabled for the IIS application that hosts this service. 

をエラーが出ます

EDIT エラーメッセージはWebページにあります。 http://Servername/Directory/pageName.svc

答えて

2

まあ、それが判明:

このサービスの

セキュリティ設定が「匿名」認証を必要とするが、それは、このサービスをホストするIISアプリケーションに対して有効になっていません。

メッセージをよく読んで、サービスをホストしているIISアプリケーションに対して匿名認証を有効にする必要があることがわかります。 (IIS構成の場合)。

+0

あなたは匿名ではなくWindows認証のみになる必要があります –

+0

なぜ ''を使用するのですか? '' –

+0

を試してみてください。これはTransportCredentialOnlyを使用して終了しました。 –

0

クライアント側の設定を変更しましたか? クライアント側では、同じセキュリティメカニズムを使用する必要があります。そして、Windows資格情報がサーバーに渡されていることを確認してください。

+0

エラーメッセージはWebページにあります。 http://Servername/Directory/pageName.svc クライアントには同じメッセージがあります –

1

IISでホストされているHTTPエンドポイントのWCFトランスポートセキュリティでは、同じセキュリティ設定がホスティングに適用されている必要があります。 IISマネージャーにアクセスし、ホスティングアプリケーションの認証をWindows認証に設定し、他の認証モードを無効にします。

@KierenはコメントにあなたのセキュリティモードをNoneに設定しています。だからあなたはあなたのサービスが何かのセキュリティを欲しくないと言っています。これをTransportに変更する必要がありますが、HTTPエンドポイントの代わりにHTTPSも必要になります。あなたがHTTPを主張していて、セキュリティ保護されていないチャネルにセキュリティトークンを渡すことに満足している場合は、TransportCredentialOnlyに変更する必要があります。

+0

ywh私は既にそれを行っていました。私はWindows認証に変更するとすぐにエラーメッセージが表示されます –

+1

mexエンドポイントにコメントし、IISサイトに対してWindows認証のみが有効になっています。 –

+0

あなたはTransportCredentialOnlyを指摘しました。 –

0

私は、Win7で私のラップトップのIIS7でWCFをホストしました。 WCFはSSLを使用していましたが、基本認証のみが使用されていました。私はWindows Server 2008 R2を搭載した別のマシンのIIS7に同じwcfを無作為に移行しました。ここに投稿と同じエラーがありました。 solutonはmexエンドポイントについてコメントしていましたが、今はすべて動作しています。皆さん、ありがとうございました。

関連する問題