ホスト ('Anonymous') で構成された認証スキームは、バインディング 'BasicHttpBinding' ('Negotiate') で構成されたものを許可しません。SecurityMode が Transport または TransportCredentialOnly に設定されていることを確認してください。さらに、この問題は、IIS 管理ツール、ServiceHost.Authentication.AuthenticationSchemes プロパティ、アプリケーション構成ファイル内のエレメント、バインディングの ClientCredentialType プロパティの更新、または調整によって、このアプリケーションの認証スキームを変更することによって解決される場合があります。 HttpTransportBindingElement の AuthenticationScheme プロパティ。
9 に答える
このエラーは、ローカル IIS Web サーバーに認証モードがインストールされていない場合に表示されることがあります。[コントロール パネル] -> [プログラム] -> [Windows の機能の有効化または無効化] に移動します。
Internet Information services -> Wold wide web Services -> Security -> を確認し、Basic、Windows、Digest 認証モードを有効にします。IIS を開き、アプリケーションに移動して、認証セクションに移動し、必要な認証モードを有効にします。私にとっては、インストール直後または Web サーバーの再起動後に認証モードが表示されませんでした。マシンを再起動すると、それらが webapplication に表示されました。
これは、サイトに Windows 認証用に構成された WCF があったため、私に発生していました...
<security mode="Transport">
<transport clientCredentialType="Windows" />
</security>
ただし、IIS では Windows 認証が無効で、匿名認証が有効になっていました。修正は、IIS で Windows 認証を有効にすることでした。
これが私に起こったとき、「検出」ボタンを使用してサービス参照を追加するときに、Visual Studio が「既定の Web サイト」を使用してサービスをホストしていることに気付きました。そのため、IIS の「既定の Web サイト」でサービスが使用していた認証を有効にする必要がありました。Windows 認証を使用していたので、IIS の「既定の Web サイト」で有効にすると、問題が解決したようです。もちろん、サービスが別のタイプの認証を使用している場合は、正しい認証を有効にする必要があります。
認証を構成するには、IIS を開きます。[サイト] で、[既定の Web サイト] を選択し、[認証] を選択します。