問題タブ [servicebehavior]
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.
c# - IServiceBehavior と ApplyDispatchBehavior の簡単な例
サービス動作を使用して Unity を WCF サービス ライブラリにプラグインしようとしています。
Service Behavior の単純で必要最小限の例が必要です。
私がやりたいことは、WCF サービスの起動時に IOC Unity コンテナーをセットアップすることだけです。
注: 私は WCF サービス アプリケーションを使用していません。したがって、これを行う ASP.NET の方法にはアクセスできません。概念の観点からは、サービスの動作は最も洗練された方法のように思えます。しかし、セットアップ方法がわかりません (どのコードが必要か、構成ファイルを更新する必要があるかなど)。
wcf - メッセージ レベル セキュリティで netTcpBinding を使用するには?
WSE3 サービスを WCF プラットフォームに移行しています。クライアントは従来の WSE3 クライアントになります。
いくつかの要件を満たすために、カスタム サービス動作を作成しました。web.config
サービス動作の構成 ( ) には、serviceCertificate
要素が含まれています。
この動作は、behaviorConfiguration
設定を使用して私のサービスに適用されます。ここで、同じ IIS 7.5 でホストされている別の WCF サービスから 1 つの WCF サービスを呼び出したいと考えています。だから私はnetTcpBinding
(そしてnetNamedPipeBindingも)追加しました。WCF サービスから別のサービスの OperationContract を呼び出すと、以前はAccess is denied.
エラーが発生していました。behaviorConfiguration
サービスの設定を削除すると、 netTcpBinding
(および netNamedPipeBinding) が機能しました。
構成は以下のとおりです。
web.config のサービス動作構成は次のとおりです。
のバインディング構成netTcpBinding
は次のとおりです。
私は知りたいです、
- このようなシナリオで netTcpBinding を使用するにはどうすればよいですか?
- 同じサービスに対して 2 つの異なる動作を使用できますか? はいの場合、どのように?
- いいえの場合、このシナリオで名前付きパイプのバインドを実現するにはどうすればよいですか?
- サーバー証明書関連のもので
Access is denied
エラーが発生するのはなぜですか? 内部例外はありません。ただAccedd拒否メッセージ!
wcf - behaviorExtensions の web.config 継承の無効化
IIS で既存の (ルート レベル) Web サイトに Web アプリケーションを追加しようとしています。ルート レベルの Web サイトの web.config ファイルでは、system.serviceModel の下に特定の behaviorExtensions が定義されています。
拡張子は次のように使用されます。
特定の理由により、追加された Web サイトに必要なアセンブリへの参照を追加することは許可されていないため、この方法で拡張機能の継承を無効にしたいと考えています (もちろん、追加された Web サイトの web.config で):
また、次のような拡張機能セクションの継承を防止しようとしていました: <extensions><clear/></extensions>
. ただし、<clear/>
拡張ノードではサポートされていないようです。
それでも、追加された Web サイトで WCF エラーが発生すると、次の例外が発生します (問題は行 191 にあります)。
他の追加された Web サイトが問題の設定を使用しているため、ルート レベルの Web サイトの web.config で継承を禁止することはできないことを考慮してください。
c# - WCFConcurrencyModeSingleおよびInstanceContextModePerCall
wcfサービスの構成に問題があります。サービスを呼び出すたびに、サービスの新しいインスタンスを作成したいと思います。並行性については、ある呼び出しが別の開始の前に終了したいと思います。
したがって、私がこのようなサービスを持っている場合:
ループ内の複数の呼び出しでそれを呼び出すと、トレースは次のようになります。
私はこれが欲しいのですが:
これは可能ですか?ありがとうございました
wcf - BehaviorExtensionElement への属性の追加
WCF にカスタムの behaviorExtensionElement を追加していて、構成された要素が読み取られているときに読み取ることができる属性を追加したいと考えています。
ただし、「認識されない属性 'myAttribute'。属性名は大文字と小文字が区別されることに注意してください。」というエラーが表示されます。
どうすればこれを回避できますか? コードで myAttribute 値を読み取るにはどうすればよいですか?
wcf - ConcurrencyModeがSingleの場合、複数の操作コントラクトを呼び出すことはできますか?
3つの運用契約を持つWCFサービスがあります。私[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Single)]
はこのサービスに設定しました。私の基本的な疑問は、一度に3つのサービスすべてに電話をかけることができるのか、それとも一度に1つの契約にしか電話をかけられないのかということです。誰でも解決策を教えてください。
.net - WCF エラー「オブジェクト グラフでシリアル化または逆シリアル化できる項目の最大数は '65536' です」
WCF 呼び出しで次のエラーが表示されます。
オブジェクト グラフでシリアライズまたはデシリアライズできるアイテムの最大数は '65536' です
私は大量のフォーラム投稿を読みましたが、その多くは app.config と web.config を変更して新しい動作を指定し、より大きなオブジェクト グラフを許可することについて言及しています。私はそれを行いました、そしてこれは私がそれらのファイルに持っているものです:
WPF プロジェクトの App.Config:
サービス プロジェクトの web.config:
ただし、これは役に立ちませんでした。APP.CONFIG で参照されているサービスは、私が問題を抱えているサービスではないことに注意してください。
私も次のことを試しました:
これらの属性をサービス実装に追加しました: [DataContract(IsReference=true)]、[ServiceBehavior(AddressFilterMode = AddressFilterMode.Any、MaxItemsInObjectGraph = 2147483646)]
MaximumObjectsInGraph と IsReference の動作を設定するカスタム DataContractSerializerOperationBehavior クラスを作成しました。また、これをサービス実装に適用するカスタム属性も追加されました。混乱を避けるために、コードは投稿しませんでしたが、誰かが有益だと思う場合は追加できます。
考え?アイデア?ここからどこへ行けばいいですか?
前もって感謝します!
java - WCF および Java クライアントを機能させる方法。専門家の助けが必要
背景(少し長い):
数年前、私は顧客のために、security mode = "Transport" で clientCredentialType = "Certificate" の basicHttpBinding を使用するように構成された WCF サービスを作成しました。つまり、クライアントは (クライアント) 証明書を使用して自分自身を認証しています。このサービスは、着信証明書の拇印が有効な証明書の拇印の定義済みリストに存在するかどうかを確認するカスタム AuthorizationManager を採用しています。受信した証明書が有効であると見なされた場合、操作を続行できます (そうでない場合は、例外がスローされます)。
このサービスは約 4 年間問題なく機能しており、全員が満足しています。しかし、よくあることですが、要件が変更され、最近、アプリケーションを私の顧客のサービスに接続したいと考えている開発者から、私の顧客に連絡がありました。唯一の問題は、これらの開発者が好みのプラットフォームとして Java の変種を使用しており、現在、深刻な問題に直面していることです。簡単に言うと、Java 実装 (Metro、Axis2 など) を現在構成されているサービスで動作させることができた人は誰もいません。
先週、メッセージ clientCredentialType = "UserName" を指定してセキュリティ モード = "TransportWithMessageCredential" でバインディングを wsHttpBinding に変更することで、Java (Metro、JAX-WS) で記述されたクライアントで動作するようにしました。また、カスタム UserNamePassWordValidatorType を構成ファイルのサービス資格情報要素に追加しました。
次に、クライアントからの証明書がないため、カスタム AuthorizationManager をコメントアウトしました。
驚いたことに、今回は SoapUI と適切な Java クライアントの両方がサービスと通信できるようになりました。
(ちなみに、私たちのサービスは Windows サービスで自己ホストされています)
幸いなことに、サービスを 2 つのバインディングで構成することにしました。長い間問題なく動作している既存の basicHttpBinding と、新しくテストされた wsHttpBinding です。したがって、次のようになります。
では、どこに問題があるのでしょうか。さて、その<serviceBehavior>
要素を見ますか?ご存じのとおり、この要素はサービスにグローバルに適用されます。つまり、実行時に CustomUserNameValidator と AuthorizationManager の両方が呼び出されます。後者は、クライアントが wsHttpBinding! を使用してサービスを呼び出すと、証明書が存在しないと文句を言います。
ああ!
代替ソリューション。
これまでのところ、これらは私が思いついた代替ソリューションです。
代替案 1)別の URL で WCF サービスをホストする別の Windows サービスを作成します。その後、両方のサービスが個別の構成になります。
代替案 2)同じ Windows サービスでホストされる 2 つのサービス実装を作成し、それぞれ独自のバインディングと serviceBehaviour を使用して要素で両方を公開します。
代替案 3)現在の構成を維持し、CustomUserNameValidator と AuthorizationManager を平和的に共存させることが可能かどうかを判断する
この長い投稿で申し訳ありませんが、質問の背景を提供する際には徹底する必要がありました.
質問 1)重要な構成を使用して、WCF を Java クライアントと連携させた人はいますか?
質問 2)選択肢 3 を解決する方法について誰か提案がありますか? (できれば)
質問 3)上記の代替案のうち、推奨するものはどれですか?
質問 4)私が考えていない、あなたが知っている他の選択肢はありますか?
記録として、私は WCF 相互運用性ツールを調べましたが、それがどのように役立つかはよくわかりません。これを読んで相互運用性「ウィザード」を使用して良い結果が得られた場合、
私にお知らせください。
前もって感謝します。
--ノルジー
wcf - WCF - serviceBehaviors を WCF エンドポイントにアタッチする方法 (いいえ鬼ごっこ)
私はサードパーティの WCF サービスを使用していますが、その構成は以下のとおりです (一部)。エンドポイントに割り当てたかったのですが、ここにタグserviceBehaviors
がありません。<service>
この場合、「serviceBehaviors」をどのように割り当てますか?
castle-windsor - Castle Windsor fluent APIでIncludeExceptionDetailInFaultsをオンにすることは可能ですか?
この例外が発生しています。
内部エラーのため、サーバーは要求を処理できませんでした。エラーの詳細については、サーバーで ( ServiceBehaviorAttribute または構成動作のいずれかから) IncludeExceptionDetailInFaults をオンにして、例外情報をクライアントに送り返すか、Microsoft .NET Framework 3.0 SDK ドキュメントに従ってトレースをオンにします。サーバーのトレース ログを調べます。
この設定を流暢なAPIで追加したい
方法はありますか?これが私の現在の構成です...