問題タブ [wcf-endpoint]
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 - 2 つのエンドポイントのいずれかを使用するように WCF を構成する
利用可能な 2 つのエンドポイントの1 つだけを使用するように WCF を構成する方法は?
2 つの TCP ポートが必要です (したがって を使用しますnetTcpBinding
)。サービス ホストは、最初のポートへのバインドを最初に試行する必要があります。失敗した場合にのみ、2 番目のポートへのバインドを試行する必要があります。
編集
プログラムで達成できることはわかっていましたが、宣言的に(.config
ファイルのみを使用して)行うつもりです。
.net - サービスにはアプリケーション (非インフラストラクチャ) エンドポイントがありません
最近、WCF サービス (dll) とサービス ホスト (exe) を作成しました。サービスを WcfTestClient に正常に追加できたので、WCF サービスが正しく機能していることはわかっています。
ただし、サービス ホスト (exe) から WCF を使用する場合、問題が発生しているようです。WCF (dll) への参照をサービス ホスト (exe) に追加し、必要なコンポーネントを exe に作成できます。サービス インストーラー、サービス ホスト、app.config などをコンパイルし、最後に InstallUtil を使用して exe をインストールします。しかし、Microsoft 管理コンソールでサービスを開始しようとすると、サービスが開始された直後に停止します。
そのため、この問題の正確な原因を調査し始め、イベント ビューアーのアプリケーション ログからこのエラーが発生しました。
説明:
サービスを開始できません。System.InvalidOperationException: サービス 'Service' にはアプリケーション (非インフラストラクチャ) エンドポイントがありません。これは、アプリケーションの構成ファイルが見つからなかったか、サービス名に一致するサービス要素が構成ファイルに見つからなかったか、サービス要素にエンドポイントが定義されていなかったためである可能性があります。
このエラーは、実際にはOnStart
;で生成されます。この呼び出しを実行すると、私のexeのServiceHost.Open()
。他の個人がこの問題に遭遇した投稿を数多く見てきましたが、すべてではないにしてもほとんどがサービス名または契約を主張しています。名前空間とクラス名が指定されていません。構成ファイルでこれらのエントリの両方を確認しました。exeとdllの両方で、完全に一致します。オフィスの他の人に後ろを再確認してもらい、ある時点で目が見えなくなっていないことを確認しましたが、もちろん、すべてが正しく指定されているように見えるという同じ結論に達しました。この時点で何が起こっているのか、私は本当に途方に暮れています。誰かがこの問題について私を助けてくれますか?
これが発生する可能性のある別の理由として考えられるのは、app.config が読み取られないことです。少なくとも、私が読むべきだと思うものではありません。これが問題でしょうか?もしそうなら、どうすればこの問題に対処できますか。繰り返しますが、どんな助けでもいただければ幸いです。
c# - コード内の構成ファイル WCF ベース アドレスのオーバーライド
サービスの構成ファイルで指定されたエンドポイントを持つ WCF Windows サービスがあります。
すべて正常に動作します。ただし、場合によっては、ポート 9000 が既に使用されている可能性があり、そのために ServiceHost が Open() でフォールオーバーします。構成ファイルで指定されたデフォルトのベースアドレスをコードで上書きできるようにする必要があります。たとえば、環境変数に使用するポート番号が含まれているとします。
これをプログラムで行う方法はありますか?
ServiceHost が構築された後、構成ファイルから取得した Uri リストを返す BaseAddresses プロパティを確認できます。ただし、これは読み取り専用のコレクションであるため、デフォルトの変更には使用できません。
ServiceHost コンストラクターで置換 Uri を指定すると、次のようになります。
このコレクションには、スキーム net.tcp のアドレスが既に含まれています。このコレクションには、スキームごとに 1 つのアドレスしか存在できません。サービスが IIS でホストされている場合は、'system.serviceModel/serviceHostingEnvironment/multipleSiteBindingsEnabled' を true に設定するか、'system.serviceModel/serviceHostingEnvironment/baseAddressPrefixFilters' を指定することで問題を解決できます。
CustomServiceHost を作成し、置換ベース アドレスを設定しようとすると、同じエラーが発生します。
構成ファイルのベース アドレスを空白のままにして、そのベース アドレスを ServiceHost コンストラクターに渡すと、問題なく動作することがわかっています。つまり、新しいベースを指定できます。ただし、(ハードコーディングの代わりに) 構成ファイルを使用してデフォルトを指定したいと考えています。
.net - 同じコントラクト、同じバインディング、同じアドレス、ただし異なるポートを持つことは可能ですか?
basicHTTPBindingを介して通信する必要のあるハンドヘルドがあります。私は契約を結んでおり、すべてが宣伝どおりに機能します。
テスト環境への変更、トレーニング、そしてもちろん本番環境への変更を簡単にサポートできるように、拡張する必要があります。ポートの違いがあるさまざまなエンドポイントを公開できると考えて、ポートルートを選択し、ポートに基づいて、情報が必要なデータベースを決定しました。
私はこの仕事をすることができないようです、そして今のところそれができることを示す情報をどこにも見つけていません。ポートはオプションであるため、そうでない場合があります。
誰かがこのようなことをしましたか?
wcf - powershell2 で wcf Web サービスにアクセスする
私の wcf Web サービスの 1 つにアクセスするコマンドレットを作成しようとしています。
新しいコマンドレット: New-WebServiceProxy を見てきましたが、実際には ASMX Web サービスを使用できるようにしか見えません。
この記事を見ました。これは Powershell v1.0 に焦点を当てていますが、より良い方法を使用したいと思います (存在する場合)。 http://keithhill.spaces.live.com/blog/cns!5A8D2641E0963A97!645.entry
この Web サービスを使用する他の .net アプリから、私が使用する構成の種類を次に示します。
誰でも私にアドバイスしたいですか?
wcf - WCFエンドポイントではどのような種類の非HTTPアドレスが許可されていますか?
IISとWASについて学習しないことで時間を節約しようとしているだけなので、WCFサービスをホストするコンソールアプリケーションを作成しました。ただし、HTTPアドレスではないエンドポイントアドレスを指定する方法がわかりません。次の設定がランタイムエラーの原因になる可能性がありますか?例外の説明は次のとおりです。WSHttpBindingをバインドしているエンドポイントのスキームhttpに一致するベースアドレスが見つかりませんでした。登録されているベースアドレススキームは[]です。
wcf - エンドポイントごとに WCF サービスを形作る
2 つのエンドポイント (epA & epB) を持つ単一の WCF サービスによって実装された 2 つのコントラクト (cA & cB) があります。
これはセキュリティ上の理由によるものではありませんが、純粋に明確性/組織化の理由から、endpointA を介してサービスを発見したときにのみ ContractA の操作を「確認」したいと考えています。同様に、endpointB を介した ContractB の操作のみが表示されます。
これらの操作自体を「保護」する必要はありません。シナリオは、特定のクライアントがサービスの一方の「サイド」のみを必要とし、両方を必要としないようなものです (ただし、操作自体がリソースを共有するため、2 つのサービスではなく 1 つのサービスを使用する方が理にかなっています)。
特定のサービスは基本的に 1 つの WSDL を取得するため、すべての操作がすべてのエンドポイントに公開されるようです。それが機能する方法ですか、それともエンドポイント契約で定義されていない操作を遮断することによってエンドポイントを「形成」する方法はありますか?
wcf - 名前パラメーターが存在する場合、WCF endpointBehaviors 拡張機能は取得されませんか?
カスタム MessageInspector を使用してサービス エンドポイントの動作を拡張しようとしています。拡張機能は正常に動作し、取得されますが、動作タグで「name」パラメーターを定義せず、エンドポイントで特定の behaviorConfiguration を定義しない場合に限ります。これは、すべてのエンドポイントを拡張していることを意味し、これは望ましくありません。誰が私が間違っているのか説明してもらえますか?
この構成はmyBehaviour
拡張機能を取得せず、失敗しません。
ただし、削除する
名前が存在しないように動作タグを変更します
うまく動作します。
ありがとうございました
wcf - メソッドごとにWCFのエンドポイントが異なりますか?
WCFServiceのメソッドを特定のエンドポイントにのみ応答するように制限することは可能ですか?
たとえば、複数のメソッドを持つサービスがあり、そのうちの1つがファイルを受信します。2つのエンドポイントを公開しました。1つはMTOMを使用しています。
「ファイル」メソッドに対してのみMTOMを許可することは可能ですか。
エンドユーザーが他のすべての呼び出しにMTOMを使用したい場合、その呼び出しですが、「ファイル」メソッドのためにそれを主張する必要があります。
.net - 基本的なwcfサービスがエラーを返しますサービス''にはアプリケーション(非インフラストラクチャ)エンドポイントがありません
空のWebアプリケーションを作成し、ajax対応のwcfサービスを追加しました。テンプレートによって提供されたものを使用している実際のsvc.csファイルを変更していません
}
このように設定を少し更新しました
ただし、サービスをヒットしようとするとエラーが発生します
サービス'SP.WebWCF.ActivateCardV1'には、アプリケーション(非インフラストラクチャ)エンドポイントがありません。これは、アプリケーションの構成ファイルが見つからなかったか、構成ファイルにサービス名に一致するサービス要素が見つからなかったか、サービス要素にエンドポイントが定義されていなかったことが原因である可能性があります。
何が間違っているのですか?