2012-03-16 16 views
3

ここでは何度も何度も尋ねられましたが、それ。WCF例外:...このサービスには「匿名」認証が必要ですが、このサービスをホストするIISアプリケーションでは有効になっていません。

ここで私がしたいことがあります。 IIS 6でWCFサービスをホストする必要があります。ユーザー名とパスワードのセキュリティが必要で、HTTPSを使用しているので、これらを暗号化せずに渡す必要はありません。私はこれを私のIIS上でローカルに処理していますが、展開する際に匿名アクセスが有効にならないというエラーが出ます。私のローカルIISの匿名アクセスは有効になっており、展開されたサーバーでは有効ではありません。有効にする必要はありません。問題は理解された。解決策がわかりません....

IEでページに移動したり、Visual Studioからサービス参照を追加したりすると、ユーザー名/パスワードを入力した後にこのエラーが発生します。これは、私の証明書とHTTPSが正常に動作していることと、ユーザー名とパスワードが正しいことを示しています。それがWindowsに設定clientCredentialTypeとbasicHttpBinding好きではなかったので、私はwsHttpBindingを使用しています

<services> 
    <service name="SecureWcfTestsApplication.Service1"> 
    <endpoint address="" 
     binding="wsHttpBinding" 
     bindingConfiguration ="Binding2" 
     contract="SecureWcfTestsApplication.IService1" /> 
    </service> 
</services> 

<bindings> 
    <basicHttpBinding> 
    </basicHttpBinding> 
    <wsHttpBinding> 
    <binding name="Binding2"> 
     <security mode="TransportWithMessageCredential"> 
     <message clientCredentialType="Windows" algorithmSuite="Default" /> 
     </security> 
    </binding>   
    </wsHttpBinding> 
</bindings> 

:ここではweb.configファイルから関連する設定です。私はむしろbasicHttpを使用したいと思っていますが、UserNameはclientCredentialTypeとしたいのですが、UserNameとWindowsのセキュリティの違いはわかりません。

ベスト

レイ

答えて

1

Windows認証を使用してトランスポート・セキュリティを設定しない場合は、あなたが得る例外が正常である、あなたはすでに<message>を持っているもののhttp://msdn.microsoft.com/en-us/library/ms733089.aspx

<transport>タグは、この場合には必要とされていますタグが定義されます。

+0

こんにちはを追加した理由である、あまりにも多くの助け、ことwouldntの私は今、これを持っている: <バインディング名= "Binding2"> <セキュリティモード= "TransportWithMessageCredential"> <メッセージclientCredentialType = "Windowsの" algorithmSuite = "デフォルト" /> <輸送clientCredentialType = "Windowsの" /> RBrowning99

+0

anyon私がそれをするために見つけた最も簡単な方法は、後でこれになります。 <サービス名= "SecureWcfTestsApplication.Service1"> <エンドポイントアドレス= "" 結合= "basicHttpBinding" bindingConfiguration = "Binding2" 契約= "SecureWcfTestsApplication.IService1" /> <バインディング名= "Binding2"> <セキュリティモード= "交通"> <輸送clientCredentialType = "Windowsの" /> RBrowning99

0

サービスでは匿名認証を有効にする必要がありますが、サービスでは有効にする必要があります。

サイトの「ルート」認証にはWindows認証のみが有効になっていることを確認してください。その後、サイトを展開し、 'service'フォルダを選択し、サービスでWindowsと匿名認証が有効になっていることを確認します。

少なくとも、私は基本的なMSSQL Master Data Servicesウェブサイト&サービスと同じエラーメッセージがありましたが、これが解決策でした。サービスを実行しているときにエラーが発生しましたが、サイトがほぼ正常に機能しました。サービスの認証設定が最初は間違っていたため、MDS Explorerは機能しませんでした。このミスコンフィギュレーションの原因は、新しいMDSサイトを作成する際のMDS Configuration Managerのバグである可能性があります。

私の場合、web.configファイルとApplicationHost.configファイルを特別に編集するだけで問題は解決されず、Webサイトの正しい認証設定とIISマネージャーのサービスが選択されます。私はこれがここに当てはまるとは確信していませんが、試してみる価値がありますか?

0

特にダム瞬間に、私はまた、このエラーを取得しました。

WCF例外:...このサービスは「匿名」認証を必要としますが、このサービス

をホストするIISアプリケーションが使用できないため、

私は結局、私のweb.configが "system.web"に "authentication"タグを全く持っていないことに気付きました。 IISが認証の問題について不満を抱いているのは当然のことです。この問題を解決する

を追加するのと同じくらい簡単だった:

<system.web> 
    <authentication mode="Windows" /> 

愚かを、私は知っている...しかし、私はこのことができます願っています!

1

IISマネージャーで、サイトをクリックします。

「機能ビュー」のIISセクションでは、いわゆる「認証」機能を選択し、それをクリックします(「コンテンツビュー」ではなく)。ここでWindows認証を有効にすることができます。これはまた可能です(私はスレッドの提案の1つで、web.config(...)の設定で可能です)

多分あなたはあまりにも多くのと一緒に。私はこれを追加し、まだ同じエラーを取得 - - そして、このスレッドは私がこの回答

関連する問題