問題タブ [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.
wcf - WCF での名前付きパイプのデバッグ
開発サーバーは HTTP ( http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/c7f173ea-61dc-4338-8883-60d616adc18f/ )以外のバインディングの使用をサポートしていないため、では、NetNamedPipeBinding をどのようにデバッグするのでしょうか?
現在、Microsoft Service Configuration Editor でバインド タイプを basicHttpBinding から netNamedPipeBinding に変更すると、F5 キーを押してポップアップする自動生成された WCF ツールを使用しようとすると、次のエラー メッセージが表示されます。
System.InvalidOperationException: NetNamedPipeBinding をバインドするエンドポイントのスキーム net.pipe に一致するベース アドレスが見つかりませんでした。登録されているベース アドレス スキームは [http] です。System.ServiceModel.ServiceHostBase.MakeAbsoluteUri (Uri relativeOrAbsoluteUri、Binding binding、UriSchemeKeyedCollection baseAddresses) で System.ServiceModel.Description.ConfigLoader.LoadServiceDescription (ServiceHostBase ホスト、ServiceDescription 説明、ServiceElement serviceElement、Action`1 addBaseAddress) で System.ServiceModel.ServiceHostBase. System.ServiceModel.ServiceHostBase.LoadConfigurationSectionInternal(ConfigLoader configLoader、ServiceDescription の説明、
構成:
解決策 名前付きパイプ バインディングを作成した後にベース アドレスを追加する
.net - コンソールアプリケーションでWCFサービスをホストするときのIMetadataExchangeMEXエンドポイントエラー
WCFサービスがあります。コンソールアプリケーションでサービスをホストしようとしています。
私はここですべての指示に従っています。
これですべてが正常にコンパイルされますが、実行時に例外が発生します。
コントラクト名「IMetadataExchange」が、サービスインデクサーによって実装されたコントラクトのリストに見つかりませんでした。ServiceMetadataBehaviorを構成ファイルまたはServiceHostに直接追加して、このコントラクトのサポートを有効にします。
今、方向に、私は追加するように指示されています
WCFサービスまたはホストコンソールアプリケーションのどこにもIMetadataExchangeがありません。
例外はどこから来るのですか?私が見逃している参照はありますか?
これは私のコンソールプログラムです
私のWCFサービスには、コントラクトとのインターフェイスがあり、myserviceクラスに実装されています。
以下は私のapp.config全体です。
configuration - カスタム バインディングを App.config で構成可能にする
カスタム バインドを作成しましたが、App.config で構成できるようにしたいと考えています。
現時点ではバインディングに特別なオプションはありません。
いくつかのサイトをチェックした後、<BindingExtension>
. ただし、追加しようとすると、MSDN サイトはあまり役に立ちませんでした。
、プログラムを起動しようとすると、次のエラー メッセージしか表示されません。
構成バインディング拡張 'system.serviceModel/bindings/myBinding' が見つかりませんでした。このバインディング拡張機能が system.serviceModel/extensions/bindingExtensions に正しく登録されていること、およびスペルが正しいことを確認してください。
bindingExtension で言及されている型は、 から継承する型を指していBinding
ます。
バインディングの構成サポートを有効にするには、何を追加する必要がありますか?
私の目標は、バインディングを構成ファイルにエクスポートできるようにすることです。バインディングに特別な設定を許可したくありません。<endpoint>
構成ファイルのタグで使用できるはずです。
wcf - 1 つのバインディングで複数のスキームをサポートする
http で動作するカスタム バインディングを開発したため、http
スキームとして返されます。このスキームを返す現在のコードは次のとおりです。
Binding
私の用途の導出
ここで、transportElement は my custom のインスタンスでTransportBindingElement
あり、スキームはによって直接返されます
. 今、私はのサポートを追加したいと思いhttps
ます。スキームに応じて、バインディングのユーザーから要求された場合、チャネルは安全な接続を開く必要があります。
1 つのバインディングに対して複数のスキームを公開することは可能ですか?
- はいの場合、どうすればこれを行うことができますか ( ?
Scheme
のみを返すためstring
) - いいえの場合、願いを叶えるためにはどのようなアプローチをとればよいですか?
c# - WCFの1つの着信ポートで二重バインディングが可能ですか?
WCF で着信接続用に 1 つのポートを開いている場合、二重バインドは可能ですか?
SOの別の質問から引用...「私はビジネス固有のメッセージングアプリケーションを作成しています.5000〜10,000台のマシンをWCF経由でデータセンターに接続します(vpnなし、ネット全体)。主にアラート用です。特定のクライアントに直接メッセージを送信できるようにする必要があります」
これは私のアプリケーションの動作と同じです。すべてのユーザーに、クライアントでポートを開くためにポート フォワーディングを実行させることはできません。(ただし、サーバーのポートは開けます)
それで、これは可能ですか?
c# - WCF:メッセージコントラクトでストリーミングを使用する
ストリーム自体の横に追加のパラメーターが必要なため、メッセージコントラクトでWCFストリーミングを使用しようとしています。
基本的に、私はファイルのアップロードとダウンロードのサービスを作成しており、その上にいくつかの追加のロジックがあります。
残念ながら、ブラウザからサービスにアクセスしてすべてが正常であることを確認しようとすると、次のエラーが発生します。
'/'アプリケーションのサーバーエラー。コントラクト「IFileTransferService」の操作「UploadFile」は、SOAPヘッダーを持つMessageContractを使用します。SOAPヘッダーは、NoneMessageVersionではサポートされていません。
残念ながら、それをグーグルで検索しても、私を助ける重要な結果は得られませんでした。助けてもらえますか?ここにサービスの詳細があります(スペースの都合でダウンロード部分を削除しました)。
私はbasichttpbindingとcustomhttpバインディングの両方を使用しようとしましたが、プラスの効果はありませんでした。
更新:オンラインでドキュメントを読むと、MessageContractsを使用したストリーミングが実際に可能になるはずです。たとえば、MSDN(ラージデータとストリーミング)を参照してください。
ストリーミング転送のプログラミングモデル
ストリーミングのプログラミングモデルは単純です。ストリームデータを受信する場合は、単一のストリーム型入力パラメーターを持つ操作コントラクトを指定します。ストリーミングされたデータを返す場合は、ストリーム参照を返します。[...]このルールは、メッセージコントラクトにも同様に適用されます。次のメッセージコントラクトに示されているように、ストリームであるメッセージコントラクトに含めることができるボディメンバーは1つだけです。追加情報をストリームと通信する場合は、この情報をメッセージヘッダーに含める必要があります。メッセージ本文は、ストリームコンテンツ専用に予約されています。
また、ファイルのアップロードとダウンロードのサービスを実行している人々からのブログ投稿も、私がまとめようとしているものと非常によく似ています(たとえばここ)。
UPDATE 2 小さなコンソールを作成し、basicHttpBindingを使用してサービスをセルフホスティングしようとしましたが、それは魅力のように機能します。問題はIISでのホスティングにあるのではないかと私は信じ始めています。何か案が?
更新3 私自身の答えを参照してください。
wcf - WCF maxReceivedMessageSize が構成から読み取られない
WCF サービス用に次のサーバー側 app.config があります。
このサービスに大きなファイル (約 250 KB のみ) を渡そうとすると、svclog ファイルに例外が記録されます。
受信メッセージの最大メッセージ サイズ クォータ (65536) を超えました。クォータを増やすには、適切なバインド要素で MaxReceivedMessageSize プロパティを使用します。
構成の上部にあるバインディング セクションからわかるように、maxReceivedMessageSize を 5000000 に設定しようとしましたが、サービスはまだデフォルトの 65536 に設定されていると認識しています。 "バインディング要素?
configuration - Transport SecurityMode で WebHttpBinding を使用すると接続が中断される
SecurityMode: transport (SSL) を使用して WebHttpBinding でコントラクトの実装を公開したいと考えています。
ただし、Firefox 経由でサイトにアクセスしようとすると、
ページの読み込み中に localhost への接続が中断されました。
構成ファイルは次のとおりです。