問題タブ [wcf-binding]
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.
hosting - 他の人がホストされたwcfサービスのサービス参照を追加しないようにするにはどうすればよいですか?
誰か(つまり、私が知っている人)が私のサービスを利用できるようにWCFサービスをホストしている場合、他の誰か(つまり、私が知らない人)がそれを利用するとどうなりますか?どうすればそれを防ぐことができますか?これはどのように達成できますか?
それはサービススロットリングを通じて行うことができますか、それともこれを達成する他の方法は何ですか?
wcf - WebServiceHostは、カスタムChannelListenerのOnAcceptChannelを呼び出しません
私は現在、リスニングTCPソケットからとは異なるソースからHTTPリクエストを取得するカスタムバインディングを構築しています。直接チャンネルにアクセスして開くと問題ありません。ただし、WebServiceHostのエンドポイントでバインディングをホストしようとすると問題が発生します。
カスタムバインディングのコードのすべての関数にConsole.WriteLine()デバッグメッセージを挿入しました。ChannelListenerのOnOpen()関数が呼び出されるまで、すべてが正常に機能します。その後、ServiceModelはOnAcceptChannel()メソッドを呼び出したくありません。例外もエラーメッセージもありません。それはただそこにぶら下がっていて、私のバインディングの他の関数をもう呼び出さない。アプリケーションの出力を以下のコードにコメントしました。
OnAcceptChannelメソッドが適切に呼び出されるように、アプリケーションで何を変更する必要があるかを知っている人はいますか?
乾杯
soap - WCF のカスタム ヘッダー
着信 SOAP メッセージの wsdl に特定のカスタム ヘッダーを追加したいので、以下のように必要なタグを web.config のヘッダー ノードに追加しました。
ただし、カスタムタグの「値」が「値」に設定されている場合、この値を変更するとサービスがキックアウトして以下のエラーが発生する場合、これは正常に機能します。
「DestinationUnreachable - 宛先が「http://localhost:3537/Service1.svc」のメッセージは、EndpointDispatcher での AddressFilter の不一致により、受信側で処理できません。送信者と受信者の EndpointAddresses が一致していることを確認してください。
では、タグ間の実際の値に変数値を指定するにはどうすればよいでしょうか?? URLテンプレートのように
任意のアイデア、またはカスタム ヘッダーについて間違った方法で行っていますか? ドキュメント スタイルよりも RPC スタイルの SOAP を使用しているため、messageContract は使用したくありません。
また、別の興味深いことは、ヘッダー要素で定義されたカスタムがメッセージを有効にするために、 ws-addressing 名前空間で 'IsReferenceParameter="true"' 属性を指定する必要があることです。そうしないと、上記のエラーがスローされますか?
誰かが私にこれを説明できますか?
前もって感謝します
ジョン
wcf - 接続が拒否されました-職場からのnettcpWCFサービス-VPN経由で接続しているクライアント
シナリオは次のとおりです。クライアントマシンがVPN(Cisco VPNクライアント)を介して「作業ネットワーク」に接続しました。作業ネットワークは、nettcpバインディングを備えたWCFサービスを備えたマシンをホストします。クライアントはこのサービスに接続しようとし、次のように例外を受け取ります。
net.tcp:// workMachine:2010/SomeServiceに接続できませんでした。接続の試行は00:00:01.3180754の期間続きました。TCPエラーコード10061:ターゲットマシンがworkMachine:2010をアクティブに拒否したため、接続できませんでした。
私が試したこと:
- クライアントマシンのワークグループをワークネットワークワークグループに変更しました
- Windowsネットワークパスワードボールトのドメイン/ユーザー名/パスワードを追加して、接続に使用できるようにしました
- workMachine名の代わりにIPアドレスでwcfサービスパスを変更しました
- クライアントマシンのファイアウォールを確認し、wcfクライアントがファイアウォールを通過できるように追加しました
上記のすべてが失敗し、機能しませんでした。誰かが同様の問題に遭遇しましたか?
クライアントマシンはWindows7上にあります
WCFサービスのSecurityModeはNONEに設定されているため、問題にはなりません。
どんな洞察も役に立ちます
wcf - TryReceiveRequest が無限に呼び出される
追加のソースから HTTP メッセージを受信できるようにするためのカスタム バインディングを作成しました。ただし、まだバグがないわけではありません。
私のサービスは、最初のリクエストが処理されるとすぐに CPU 使用率を最大 100% に押し上げ、より多くのリクエストが入ってくるほどサービスが遅くなるのを観察しました。バインディングの機能。
最初のリクエストが入る前までは、すべて正常に動作します:
次に、最初のメッセージの処理が行われます。
チャネルは IReplyChannel インターフェイスを実装しているため、要求を取得して応答し、チャネルを閉じることしかできないはずです。チャネルを閉じるだけでなく、ServiceModel は、過去に使用されていたチャネルに関係なく、既に使用されているチャネルで TryReceiveRequest をスパムし続けます。
これを適切に修正する方法はありますか?応答コンテキストを閉じた後に ServiceModel がチャネルを閉じないのはなぜですか?
asp.net - WCF 例外 - 「本文」、「http://www.w3.org/2003/05/soap-envelope」で必要なメッセージ部分が署名されていませんでした。問題
私はローカルで WCF クライアントを実行していますが、これは常に MessageSecurityException をスローし、次のテキストをスローします 。
内部例外メッセージ: 「メッセージのセキュリティを検証中にエラーが発生しました」
私はトレースを設定し、そのファイルで「内側の」例外メッセージを次のように見ることができます。署名されていません。」
バインディングはすべて、securityMode="Message" で netTcpBinding を使用して、クライアントとサービスの間で完全に一致します。
サービスの背後にあるインターフェースを装飾する ServiceContract は次のとおりです。
エラーの原因は何ですか? 私は WCF の専門家ではないので、さらに情報が必要な場合はコメントしてください。何を試すべきかについてのアイデアも役に立ちます。ここで何が起こっているのかわかりません。
xml - WCF サービスで GetReaderAtBodyContents を使用した「予期しないファイルの終わり」
カスタム バインディングを介して SOAP メッセージを受け入れる Web サービスを実行しています。
メッセージは正しくディスパッチされ、ほとんどのメッセージは正常に処理されます。メッセージの処理中に、メッセージは次を使用して XmlDocument に読み取られます。
ただし、サービスの負荷が増加すると (おそらくスレッドの問題でしょうか? カスタム トランスポート チャネルが WebMessageEncoder を使用してメッセージを作成した後、メッセージは他のどこにもアクセスされないため、想像できません)、XmlException がまれにスローされますが、入力メッセージはわかった。
予期しないファイルの末尾。次の要素が閉じていません: A、B、Body、Envelope。行 28、位置 9。
コードのこの行にブレークポイントを設定したので、msg.ToString() の現在の値を確認できます。これにより、http://www.validome.org/ のようなバリデーターで適切に検証される XML ファイルが得られます。 xml/検証/
本体は、msg.GetReaderAtBodyContents() でリーダーを使用して 1 回だけ読み取ることができるストリーム形式にすることもできるため、msg.ToString() の呼び出しが常に適切に機能する必要はないことに注意してください。
この奇妙な動作の理由は、WebHttpBinding で 25000 を超えるリクエストで正常に動作するため、カスタム バインディングにあるようです。
私のトランスポート チャネルでは、入力ソースから byte[] 本体にメッセージを抽出した後に、このコードを使用します。
ヘッダーは後で適用され、メッセージは RequestContext の RequestMessage プロパティに直接入れられます。エラーには忘れていたものがあるはずです。しかし、何?
wcf - クライアント認証証明書を必要とするWebサービスのWCFクライアントにサービス参照を追加する方法
注意、WCF初心者アラート
WCF以外のWebサービスをクエリするためにWCFクライアントを作成する必要があります。WebサービスはWCFサービスではありません。さらに、Webサービスにはクライアント認証証明書が必要です。これで、証明書を取得し、完全に機能する非WCFクライアントを作成できます。「Web参照の追加」ができ、証明書ダイアログボックスが開いて適切な証明書を選択できるようになり、次にWeb参照を作成しました。「サービス参照の追加」を介してWCFクライアントを作成しようとすると、別の話になりますが、403AccessDeniedエラーで失敗します。
サービスのWSDLがあり、その上でsvcutil.exeを実行しましたが、そこから続行する方法がわかりません。
助けてくれてありがとう!
java - Java クライアントによって WCF で作成された SOAP 1.2 Web サービスを使用する方法は?
すべてのプラットフォームで相互運用可能な Web サービスを実装する必要がある Web サービス プロジェクトを開発しています。そのため、最初は SOAP 1.1 を使用するため basicHttpBinding を使用しましたが、信頼できるメッセージング、セキュリティ、例外などの WS-* の機能が必要です。そこで、SOAP 1.2 標準である wsHttpBinding を使用しました。
テスト サーバーにデプロイした後、Netbeans IDE を使用して Web サービス クライアントを生成しました。その代わりに、Java で wsimport ツールを呼び出してプロキシ クラスを生成しました。メソッドを呼び出すと、5分間アクティビティがないように、単に非稼働状態になります。Java クライアントが WCF で作成された SOAP 1.2 Web サービスを使用できるかどうかを判断できませんか?
すべての機能に wsHttpBinding 以外のバインディングを使用する必要があるかどうか、また相互運用性も必要かどうかを知る必要があります。
Webメソッドを呼び出してもエラーは発生しません。デバッグを試みましたが、助けにはなりませんでした。メソッドを呼び出していた行にブレークポイントを設定しました。デバッガーがその行に到達しても何も起こらず、IDEは実行ステータスを表示しますサーバーへのHTTPリクエストを監視するツールを誰かが提案できる場合。
c# - NetTcpBinding を使用した WCF サービス ライブラリ
NetTcpBinding で苦労しています。
WCF サービスを実行すると、次のようになります。
WCFSvcHost を使用してデフォルトでアプリケーションを実行すると、これが発生します。追加のコードはありません。新しい wcf サービスのデフォルト コードのみです。私がやりたかったのは、バインディングを tcp に変更することだけでした。
この問題を解決するにはどうすればよいですか?
編集:これが私のWCFのApp.configです