1

IISV5.1を使用しています。統合Windows認証

私は次のWeb設定を持っています:

<system.serviceModel>
    <bindings>
      <wsHttpBinding>
        <binding name="wsHttpEndpointBinding">
          <security mode="Transport" />
        </binding>
      </wsHttpBinding>
    </bindings>
    <services>
      <service behaviorConfiguration="DXDirectory.Service1Behavior"
        name="DXDirectory.DXDirectoryService">
        <endpoint address="" binding="wsHttpBinding" bindingConfiguration="wsHttpEndpointBinding"
          name="wsHttpEndpoint" contract="DXDirectory.IDXDirectoryService" />
        <endpoint address="mex" binding="mexHttpsBinding" bindingConfiguration=""
          name="MexHttpsBindingEndpoint" contract="IMetadataExchange" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="DXDirectory.Service1Behavior">
          <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>

ブラウザでsvcファイルを表示することを選択すると、次のエラーが表示されます。

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

このエラーは、Mexエンドポイントを削除すると削除されます。

しかし、クライアントアプリケーションにサービス参照を追加しようとすると、次のエラーが発生します。

URL http://localhost/DXDirectory/DXDirectoryService.svcのドキュメントが既知のドキュメントタイプとして認識されませんでした。

既知の各タイプからのエラーメッセージは、問題の修正に役立つ場合があります。

  • ' http://localhost/DXDirectory/DXDirectoryService.svc 'からのレポートは'ドキュメント形式は認識されません(コンテンツタイプは' text / html; charset = UTF-8')'です。
  • 「DISCOドキュメント」からのレポートは「ダウンロード中にエラーが発生しました」https://hes-ashu.abc.com/DXDirectory/DXDirectoryService.svc?disco「。」です。
    • 基になる接続が閉じられました:送信時に予期しないエラーが発生しました。
    • リモートパーティがトランスポートストリームを閉じたため、認証に失敗しました。
  • 「WSDLドキュメント」からのレポートは「ドキュメント形式が認識されません(コンテンツタイプは「text / html; charset = UTF-8」)です)。
  • 'XMLスキーマ'からのレポートは'ドキュメント形式は認識されません(コンテンツタイプは' text / html; charset = UTF-8')'です。メタデータに解決できない参照が含まれています:' http://localhost/DXDirectory/DXDirectoryService.svc '。

HTTPリクエストは、クライアント認証スキーム「匿名」では許可されていません。サーバーから受信した認証ヘッダーは「Negotiate、NTLM」でした。

リモートサーバーがエラーを返しました:(401)許可されていません。

サービスが現在のソリューションで定義されている場合は、ソリューションを構築して、サービス参照を再度追加してみてください。

4

1 に答える 1

1

トランスポートセキュリティモードを指定すると、WCFはhttpsを期待します。これを修正して、どのようなエラーが発生するかを確認してください。

system.webタグも確認してください。

「text/html」が返される応答はおそらくエラーページであるため、それを失う可能性がある場合は、より適切なエラーメッセージが表示されます。

于 2009-09-01T09:36:14.093 に答える