2011-08-05 9 views
2

II7では、WCF/asp.netベースのAPIをホストしています。従来のaspアプリケーションのユーザーがAPIに接続できるようにするために、我々は「トランスポート」と呼ばれるバージョンを公開しなければなりませんでした。このトランスポートバージョンはasp.netでも書かれていますが、同じアセンブリを指しています。そのセキュリティ層は古典的なASPが認証できるように異なっています。トランスポートレベルのセキュリティは、メッセージベースのセキュリティとは対照的に使用されます。クラシックASP "メッセージのセキュリティを確認するときにエラーが発生しました。" iis7トランスポートレベルセキュリティ

ブラウザを使用してサービス参照をロードすると、svcutil.exe ... WDSLページを読み込むことができます。この参照からのWebメソッドを呼び出すために私のテストASPページを使用する場合

私は次のように返されます:

は、Webサービスを呼び出して完成。 ステータス=内部サーバーエラー ResponseText = a:メッセージのセキュリティを検証する際にInvalidSecurityAnエラーが発生しました。

これは、認証が失敗していることを示しています。 asp.netまたはアプリケーションWCFの嵐を使用して通常のAPIに連絡するテストは、すべてうまくいきます。

APIは最近移行されましたが、何かが正しく設定されていないように見えますが、何を説明するのか迷っています。

私はsvcutil.exe ... WDSLサービス参照をブラウズすることができます。ブラウザを使用してそれを選択すると、期待するXML応答が得られます。

利用されたユーザー名とパスワードは、メッセージベースのsecuirtyを使用してAPIの非古典的なASP公開を使用する場合に機能します。

問題の診断に役立つトラブルシューティングのヒントを投稿することは可能でしょうか?具体的には、トランスポートレベルのセキュリティ違反の発見とセットアップについてどうぞ。

は、次の更新を追加するように編集

スコット

あなた ありがとう:

は、デフォルトのアプリケーションプールと新しいアプリケーションプールを使用しようとしましたが、同じ問題が解消されません。

私のテストページのエラー:ResponseText = a:メッセージのセキュリティを検証する際にInvalidSecurityAnエラーが発生しました。

IIS LOGは示しています V3 /輸送/ testclassicasptransportwcfservice.asp(200 0 0)(すなわち、200 IIS) /V3/Transport/DeviceService.svc/DeviceService(500 0)(すなわち、エラー500をIIS)

注:TRANSPORTとV3に定義された仮想ディレクトリ。 V3は、古典的なaspとは対照的に.netを使って認証します。

イベントログ: 次のエラーが原因で、アプリケーションプール 'transport'のテンプレート永続キャッシュ初期化に失敗しました。アプリケーションプールのディスクキャッシュサブディレクトリを作成できませんでした。データに追加のエラーコードが含まれている可能性があります。

この参照は修正を示唆していますが、 "appcmd"内のDIRパスと参照の多くは存在しません。

_HTTP://theether.net/kb/100127

答えて

1

REFの_HTTP:// theether。\ WINDOWS \ System32に\ を入力しINETSRV:APPCMDリストの設定-section:system.webServer/ASP 次のパスが表示されます。C:\のinetpub \ confにCへの迅速 CD CMD/100127

負荷ネット/ KB \ TEMP \ ASPコンパイルテンプレート チェックパスネットワークサービスがないAPPCMDから

ます。icacls「C実行すると、 "ASPコンパイルテンプレート" にアクセスするための権限を持っている場合(それがない) チェックを存在:\のinetpub \ confに\ tempにする\ ASPのコンパイルされたテンプレート "/ grant" NET SERVICE:(OI)(CI)(M) "

" sucessf徹底的に処理された1ファイル "

再起動されたアプリケーションプール。

"メッセージのセキュリティを検証する際にInvalidSecurityAnエラーが発生しました"問題は引き続き発生しますが、イベントログの "ディスクキャッシュを作成できません...."というエラーは発生していません。

ご迷惑をかけます。ネットワークサービスのアクセス許可の変更は、DEFAULT APP POOLに変更することで問題を解決せずに問題を解決しました。

最後に鉛があります。検査:

  1. ServiceSecurityAuditがサービス動作に設定されています。 _HTTP://intrepiddeveloper.wordpress.com/2008/08/07/security-event-logging-auditing/#
  2. IISログ(単に非固有のエラー500を示している)
  3. も(有効番組をトレースフォルトエラー500)。
  4. エラーが
  5. フレンドリーIEメッセージ離れたカスタムは、エラーを実行していない
  6. ProcessMonに
  7. Aspのクライアント側とサーバー側のデバッグをオフしました。我々のアプリはバグを持っているよう
  8. のWeb.config httpErrors errorMode =「詳細」/> +

ServiceSecurityAuditは、「オブジェクト参照がオブジェクトのインスタンスに設定されていない」私を見つけそうに聞こえます。


(17/08/11)のフォローアップ:ここに文書

サービスセキュリティ監査:

http://intrepiddeveloper.wordpress.com/2008/08/07/security-event-logging-auditing/

は、私たちはこの問題を解決するための鍵となりました。 Business ObjectsとData AccessのDLLが一致していないことを示したオブジェクト参照エラーを発見しました。 TRANSPORT AUTHENTICATIONを使用してCLASSIC ASPを使用してWCF.NET APIに接続すると、WCFデプロイメントのbehaviour.configファイルでサービスセキュリティ監査が有効にされるまで、このエラーはほとんど表示されませんでした。

*解決済み*

関連する問題