問題タブ [soap-extension]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - .Net Web サービスのログ記録
Web サービスにログインするための私の理想的な状況は、すべてのメソッド呼び出し (認証とデータ アクセス) を、渡されたパラメーターと発生した可能性のあるエラーと共にログに記録し、それらを関連付ける単一の ID にリンクさせることです。それらを同じ呼び出しで。さらに、理想的には、すべてのパラメーターをログに記録するか、メソッド呼び出しだけをログに記録するかを制御できるようにしたいと考えています。すべてのログインをログに記録するか、失敗したログインのみを記録するかを制御できるようにしたいと考えています。繰り返しになりますが、単一の要求で取得されたすべての情報は、ID (guid またはその他) を介してリンクされます。
これが私の理想的なロギング状況です。誰かがこれらすべてを実装する方法を知っていて、ニューハンプシャー州マンチェスター地域に移動する意思がある場合... ;)
しかし、真剣に、受信したWebサービスリクエストをエラーまたはメソッド呼び出しに結び付ける方法を知っている人はいますか? 私の最初の試みは、ヘッダー (soap または html) を追加しようとすること、および拡張機能からサービス自体に任意の値を渡さないことを試みることです。私の試みはすべて成功していません。
私たちの現在のロギング状況では、あるテーブルへの認証ロギング、別のテーブルへのメソッド/ビジネス呼び出し、および別のテーブルへの例外ロギングがあり、それらの間に相互接続はありません。タイムスタンプは役立つ場合もありますが、効果的にデバッグするには信頼性が十分ではありません。私たちは現在 .Net 2.0 を使用しており、年末までに 3.5 を使用する可能性があるため、返信が 2.0 の機能にとどまるとより役立つでしょう。
誰でもアイデアはありますか?
.net - .NET SOAP 拡張機能が MethodInfo 内で NullReferenceException をスローしていますか?
注: .NET 2.0 および VS2005 を IDE として使用する
皆さんこんにちは、
私はデータベースへの Web サービス呼び出しのログ記録に取り組んでおり、最終的に、別のプロジェクトから移植された非常に簡素化された実装を使用して SoapExtension を構成し、実行することができました。すべてのメソッドで実行されるように、構成ファイルで設定しました。Web サービスを呼び出して SOAP 拡張機能が起動すると、SoapServerMessage がその MethodInfo プロパティを呼び出そうとすると、NullPointerException がスローされます。
LogInput メソッドは、ProcessMessage(SoapMessage) の BeforeDeserialize ステージで呼び出されます。
また、ログに記録しようとしているメッセージ オブジェクトの MethodInfo プロパティにアクセスしようとすると、LogInput メソッドが失敗します。プロパティが呼び出されるコードのブロックは次のとおりです。
message.MethodInfo が呼び出されると、SoapServerProtocol.get_MethodInfo() にバブル オーバーし、そこで null 参照例外がスローされます。私はググって、Stack Overflow でこのあたりをチェックしましたが、MethodInfo プロパティが例外をスローする理由を見つけることができませんでした。
Web サービスの呼び出し中にこの MethodInfo プロパティが適切に初期化されるようにする方法を知っている人はいますか?
追加の詳細: MethodInfo プロパティにアクセスしようとしない場合、拡張機能は正しく機能し、データベースにログが記録されます。
xml - XML ルート ノードにプレフィックスを追加 - Scott Hanselman の提案の実装?
名前空間プレフィックスを XML ルート ノードに追加したいと考えています。Scott Hanselman によるエントリを見つけました。これには、私が達成したいことの詳細が正確に記載されています。唯一の問題は、実装が欠落していることです!
SOAP Web サービス レスポンスのボディのルート ノードの名前空間 PREFIX を変更する....うわー!
これをどのように行うかについていくつかの手がかりを得ることができれば、非常に役立ちます。
すでにどこかに存在する実装はありますか?
Scott によるエントリは 2003 年に投稿されました。その後、状況は変わりましたか? .NET 3.5 の周りでは、Soap 拡張機能はまだ正しいアプローチですか?
編集: 現在の Web サービスの応答は次のようなものです...
望ましい応答は次のようになります...
web-services - ASP.NET要求が使用しているWebサービスプロトコルを検出するにはどうすればよいですか?
次の説明に従って、SoapExtension.ProcessMessage(SoapMessage)オーバーライドを使用してクライアントを認証するASP.NET(1.1)Webサービスがあります。
http://www.codeguru.com/columns/experts/article.php/c5479
ただし、HttpSoapが許可されている唯一のプロトコルであるようにweb.configが設定されていない場合、ProcessMessageは他のプロトコルで着信する要求に対して呼び出されることはないため、セキュリティをバイパスします。
(web.configが正しいことに依存するのではなく)SOAPが使用されていることをプログラムで確認する方法はありますか?
ありがとう。
asp.net - ScriptService WebService リクエストをトレースする方法は?
すべての SOAP 要求と応答をログに記録するための SoapExtension があります。MS Soap Toolkit (OnBase ワークフロー) を使用したアプリケーションからの呼び出しでは問題なく動作します。ただし、html ページで $.ajax() によって行われた呼び出しでは機能しません。次に例を示します。
WebService および ScriptService 属性でマークされた ASP.NET 3.5 WebService を呼び出しています。
SoapExtension と SoapExtensionAttribute の基本は次のとおりです。
$.ajax() リクエストで LoggingSoapExtension を実行できるようにする何かが欠けていますか?
アップデート
@クリス・ブランズマ
これは、Web サービス (dataType: "json") を介して XML ではなく Json の結果を要求していることが原因である可能性があります。したがって、ScriptService 属性はアクティブ化されていますが、SOAP メッセージは送信されていません。
これで、SoapExtension が機能しない理由がわかりました。ScriptService を使用したトレースに関する提案はありますか? 頭に浮かぶのは、リクエストをログに記録するメソッドを提供する ScriptService 基本クラスだけです。しかし、その後、すべての ScriptService WebService のすべての WebMethod でそのメソッドを呼び出す必要があります (私はかなりの数を持っています)。可能であれば、SoapExtension 属性のようにクリーンでシンプルなものを使用したいと考えています。
c# - SoapExtensionAttribute を使用したメソッドの呼び出し
問題があります。Web メソッドで SOAP 拡張属性を設定したい: Web サービスの SOAP 拡張:
SOAP 拡張クラス:
Web メソッドの SOAP 拡張機能:
次のコンパイル エラーで終了します。
エラー 1 名前 'setKey' は現在のコンテキストに存在しません エラー 2 非静的フィールド、メソッド、またはプロパティにはオブジェクト参照が必要です
更新 1:
私は試した:
できます。しかし、クライアントがWebメソッドを呼び出す前に属性を変更したいのですが、可能ですか、それとも属性が const でなければなりませんか?
例:public string strAttribute
機能しません。
更新 2:
別の質問があります:
私は変数numを持つクラスを持っています:
Web メソッドの SOAP 拡張機能:
c# - ASMX Web サービス Soap 拡張機能 - クライアント プロキシ クラスに属性を挿入する方法は?
クライアント側で SOAP 拡張属性を設定してみます。例えば:
Web サービスでの実装:
SOAP 拡張クラス:
Web メソッドで使用:
Proxy クラスでの実装:
SOAP拡張属性は::[EncryptMessage( StrKey = "pass")]
いくつかの Web メソッドを呼び出すときに、Soap 拡張機能を使用する前に、クライアント側で Soap 拡張属性を設定したいと考えています。
例: SOAP 拡張機能が使用される前に、両側に SOAP 拡張属性を設定するメソッドを呼び出します。誰かが私を助けることができますか?
stream - Soap 拡張機能を使用した ASMX Web サービス - 暗号化方式の問題
ASP.NET Web サービスで SOAP メッセージを歌って暗号化してみます。
Soap 拡張クラスで CryptUtility オブジェクトを使用しました。
問題は、AfterDeserialize で SOAP メッセージをログに記録すると、XML はプレーン テキストですが、暗号化する必要があります。
最初にメソッド EncryptAndSingXml をクラス SoapMsg の void として使用し、正しく動作するためです!!! このようなもの :
しかし、クラス CryptUtility とメソッド EncryptAndSingXml() を仮想として作成すると、機能しません。:( 誰かが私を助けることができますか?
c# - SoapExtension がロードされていません
石鹸拡張機能を作成しようとしています。しかし、フレームワークはそれをロードしていません。
web.configに追加しました
タイプをでたらめに変更しても、例外はキャストされません。
.net - SoapExtension を使用して他の Web メソッドを呼び出す
CalendarServiceという名前の Web サービスを定義する WSDL があります。
WSDL では、次のメソッドが定義されています。
CalendarService はどこにもデプロイされていません。 CalendarServiceProxyは、CalendarService WSDL から生成されたプロキシです。
「 http://example.com/dummy」でアクセス可能なDummyServiceという名前の Web サービスがあります。
DummyService には次のメソッドがあります。
DummyService は IIS にデプロイされます。
CalendarServiceProxy から CalendarService WSDL で定義されたすべてのメソッドへのすべての呼び出しが、DummyService のメソッド dummyMethod を呼び出すように、SoapExtension を作成することは可能でしょうか。そのため、メソッド dummyMethod は、シリアル化された着信 SOAP メッセージをパラメーターとして取得します。