web-dev-qa-db-ja.com

ホストで構成された認証スキーム(「匿名」)は、バインディング「BasicHttpBinding」で構成された認証スキーム(「ネゴシエート」)を許可しません。

ホストで構成された認証スキーム(「匿名」)は、バインディング「BasicHttpBinding」で構成された認証スキーム(「ネゴシエート」)を許可しません。 SecurityModeがTransportまたはTransportCredentialOnlyに設定されていることを確認してください。さらに、これは、IIS管理ツール、ServiceHost.Authentication.AuthenticationSchemesプロパティ、要素のアプリケーション構成ファイルで、このアプリケーションの認証スキームを変更することで解決できます。バインディングのClientCredentialTypeプロパティ、またはHttpTransportBindingElementのAuthenticationSchemeプロパティを調整する。

21
Harsha

このエラーは、ローカルに認証モードがインストールされていない場合に表示される可能性がありますIIS Webserver。[コントロールパネル]-> [プログラム]-> [Windows機能の有効化または無効化]

インターネットインフォメーションサービス-> Wold wide web Services-> Security-> Basic、Windows、Digest Authenticationモードを有効にします。 IISを開き、アプリケーションに移動し、認証セクションに移動し、必要な認証モードを有効にします。私にとって、認証モードはインストール直後またはWebサーバーの再起動後に表示されません。マシンを再起動すると、Webアプリケーションにそれらが表示されました。

32
Harsha

必要に応じて、機能を 上記で説明 、open IIS Managerとしてインストールし、サーバー機能を開きます。

enter image description here

「認証」機能を開きます。

enter image description here

必要なものを有効/無効にします:

enter image description here

11

Visual Studioでのデバッグ中にこの問題に直面した場合は、プロジェクトを選択し、プロパティで認証を変更します。

VS win auth

10
Miroslav Adamec

NegotiateをIIS Authentication Providers: enter image description here

1
depoip

これが私に起こったとき、「発見」ボタンを使用してサービス参照を追加するときに、Visual Studioが「デフォルトのWebサイト」を使用してサービスをホストしていることがわかりました。そのため、修正するには、IISの「既定のWebサイト」でサービスが使用している認証を有効にする必要がありました。私はWindows認証を使用していたので、IIS=で 'Default Website'に対して有効にし、これにより私の問題が修正されたようです。もちろん、サービスが別の種類の認証を使用している場合、正しい認証を有効にします。

認証を構成するには、IISを開きます。 [サイト]で、[既定のWebサイト]を選択し、次に[認証]を選択します。

1
garethb

私の場合、問題はリファクタリング後のサービスの不適切な構成にありました。 サービス内の名前属性タグが既存のクラスを指していない場合、この例外が発生する可能性があり、これは完全に誤解を招きます。

名前に注意してください:

<service behaviorConfiguration="FooBehavior" name="Fully.Qualified.Name.Of.Class.Implementing.Service.Contract.Here"> 
0
Igand