II7では、WCF/asp.netベースのAPIをホストします。従来のaspアプリケーションのユーザーがAPIに接続できるようにするには、「トランスポート」と呼ばれるバージョンを公開する必要がありました。このトランスポートバージョンもasp.netで記述されており、同じアセンブリを指しています。従来のaspが認証できるように、セキュリティレイヤーだけが異なります。メッセージベースのセキュリティとは対照的に、トランスポートレベルのセキュリティが使用されます。
ブラウザを使用してサービス参照をロードする場合、svcutil.exe...WDSLページをロードできます。
テストaspページを使用してこの参照からWebメソッドを呼び出すと、次のように返されます。
Webサービスの呼び出しを終了しました。ステータス=内部サーバーエラーResponseText=a:InvalidSecurityメッセージのセキュリティを確認するときにエラーが発生しました。
これは、認証が失敗していることを示しています。asp.netまたはアプリケーションのWCFストームを使用してテストし、通常のAPIに接続すると、すべてが正常に機能します。
APIは最近移行されました。何かが正しく設定されていないように見えますが、何を説明するのか途方に暮れています。
svcutil.exe ... WDSLサービスリファレンスを参照できます。ブラウザで選択すると、期待されるXML応答が得られます。
使用されるユーザー名とパスワードは、メッセージベースのセキュリティを使用してAPIの非クラシックasppublicaitonを使用する場合に機能します。
トランスポートレベルのセキュリティ障害の検出と設定に関して、問題の診断に役立つトラブルシューティングのヒントを投稿することは可能でしょうか?
ありがとうスコット
次の更新を追加するために編集:
デフォルトのアプリプールと新しいアプリプールを使用しようとしましたが、同じ問題が解決しません。
テストページのエラー:ResponseText = a:InvalidSecurityメッセージのセキュリティを確認するときにエラーが発生しました。
IISログには次の情報が表示されます。v3/transport/ testclassicasptransportwcfservice.asp(200 0 0)(つまり、iis 200)/V3/Transport/DeviceService.svc/DeviceService(500 0 0)(つまり、iisエラー500)
注:TRANSPORTおよびV3で定義された仮想ディレクトリ。V3は、認証に従来のaspとは対照的に、.netを使用して問題なく動作します。
イベントログ:次のエラーのため、アプリケーションプール'トランスポート'のテンプレート永続キャッシュの初期化に失敗しました:アプリケーションプールのディスクキャッシュサブディレクトリを作成できませんでした。データには追加のエラーコードが含まれている場合があります。
この参照は修正を示唆しているように見えますが、「appcmd」のDIRパスと参照の多くは存在しません。
_http://theether.net/kb/100127