問題タブ [servicemodelex]
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.
web-services - Juval Lowy の WCF 用 ServiceModelEx ライブラリはどこにありますか?
WCF は、Microsoft による .Net Remoting および Web サービスの代替品です。.NET コンポーネントの開発者である場合は、理解することが重要です。
WCF の最良の参考文献は (口コミ、ブログ、Amazon によると)、O'Reilly 発行の Juval Lowy の「Programming WCF Services」であるようです。
この本は、ネット上のいくつかの場所で「Juval Lowy の ServiceModelEx ライブラリに付属」として宣伝されています。これは、WCF 開発を拡張および簡素化するこの素晴らしい WCF フレームワークであるはずです。本自体の中で、Lowy はこのフレームワークについて多くのことを語っています。
ただし、上記のライブラリをダウンロードする場所がわかりません。彼の Web サイトのダウンロードページを見ると、大量のコンテンツがありますが、ServiceModelEx はありません。
彼は、彼の本のコード サンプルを参照しながら、読者がすべてを手作業で再コーディングするつもりですか?
これについて経験のある人はいますか?
ええ、これはニッチな質問ですが、重要なトピックであり、確かにプログラミングに関連していると思います。
.net - いつIn-ProcWCFコンポーネントを使用しますか?
私はJuvalLowyの優れたプログラミングWCFサービスを研究しており、ServiceModelExライブラリに付属するInProcFactoryクラスを使用して、非常に単純なin-procコンポーネントを作成しました。
プロジェクトで通常のクラスだけを使用する代わりに、なぜこれを行うのですか?彼のメソッドを使用するには、彼のライブラリを参照してインターフェイスを作成する必要があります。
私はいくつかの利点を考えることができます:
- これを一貫して行うと、結合が大幅に減少します。
- インプロセスコンポーネントを作成すると、変更せずにアウトプロセスまたはリモートで使用できるようになります。
これを行うことでより多くの利点がありますか?
インプロセスWCFコンポーネントを使用してコードを記述していますか?
すべてのクラスをコンポーネントにする必要がありますか?
デカップリング全体で完全に船外に出ることができますか?
すべてのクラスをコンポーネント化することの欠点は、利点を上回りますか?逆に?
sql - 「Programming WCF Services」ブックからの ServiceModelEx の「WCFLogbook」の使用に関する質問
Juval Lowy の Web サイト ( Programming WCF Servicesの作成者およびIDesignの創設者)からサンプル WCF アプリケーションをコンパイル/実行しようとしています。もちろん、サンプル アプリケーションは Juval のServiceModelExライブラリを利用し、障害/エラーを "WCFLogbook" データベースに記録します。残念ながら、サンプル アプリが失敗すると、次の新しいエラーが発生します。
「ログインで要求されたデータベース "WCFLogbook" を開けません。ログインに失敗しました。ユーザー 'Bill-PC\Bill' のログインに失敗しました。」
まだ作成する必要があると思われる「WCFLogbook」データベースが見つからないためにエラーが発生したと思われます。ライブラリ ソース ディレクトリには、WCFLogbookDataSet.xsd と WCFLogbook.sql の 2 つのファイルが含まれています。どちらもライブラリコード内のどこにも参照されていないようです。これにより、sql ファイルと xsd ファイルは、SQL で何らかの形でデータベースを作成するために使用されると信じています。ここで正しい方向に進んでいるかどうか、およびこれらのファイルを使用してデータベースを作成できるかどうか (もしそうなら、どのように) 誰かにアドバイスしてもらえますか?
sql - WCF障害ログとSQL例外4060エラー
私は、Juval LowyのWebサイト(Programming WCF Servicesの作成者およびIDesignの創設者)からサンプルWCFアプリケーションをコンパイル/実行しようと数日間試みてきました。サンプルアプリは、障害/エラーを「WCFLogbook」SQLデータベースに記録するJuvalのServiceModelExライブラリを利用しています。残念ながら、サンプルアプリに障害が発生すると、次のエラーが発生します。
SQL例外4060:「ログインによって要求されたデータベース\"WCFLogbook\"を開くことができません。ログインに失敗しました。\r\nユーザー'Bill-PC\Bill'のログインに失敗しました。」
SQL WCFLogbookデータベースが作成され、データベースへの(Bill-PC \ Bill)アクセスに適切なすべてのアクセス許可が付与されていることを確認しました。さらに、ポート8006とポート1433がファイアウォールで開かれています。TCP / IPが有効になっていて、「このサーバーへのリモート接続を許可する」がチェックされています。App.Configファイル内で次のエンドポイントを使用しています。
残念ながら、SQLは私が今まで冒険する必要がなかった「世界」であり、成功しなかったことにひどく不満を感じています。これを機能させる方法について他に何か提案はありますか?私は何かを逃したことがありますか?
appfabric - ServiceBus AppFabricLabs DLL
私が問題を抱えている複数の名前空間を持つ 2 つの DLL があります。
Microsoft.ServiceBus.Channels - V2.0.50727 Microsoft.ServiceBus - V2.0.50727
Juval の Lowry の Service Bus Explorer を拡張して切り替えようとしています: appfabric.azure.com - production portal.appfabriclabs.com - beta
チャネルのみを使用すると、TransportClientEndpointBehavior クラスが失われます。両方の参照を追加すると、ServiceBusEnvironment クラスが同じ名前空間の両方の DLL に存在するため、ビルドできません。
ここで明らかな何かが欠けているような気がします....
両方のファイルが参照されている場合: エラー 1 タイプ 'Microsoft.ServiceBus.ServiceBusEnvironment' が 'c:\Program Files\Windows Azure AppFabric SDK\V2.0\Assemblies\Microsoft.ServiceBus.Channels.dll' と 'c:\ の両方に存在しますProgram Files\Windows Azure AppFabric SDK\V1.0\Assemblies\NET4.0\Microsoft.ServiceBus.dll' C:\Users\rreukema\Downloads\Idesign_WCFDisk\AprilIDesignCD\Demos\ServiceModelEx\ServiceBus\Discovery\ServiceBusDiscoveryClient.cs 26 134 ServiceModelEx
チャネル参照のみの場合: エラー 12 タイプまたは名前空間名 'TransportClientEndpointBehavior' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?) C:\Users\rreukema\Downloads\Idesign_WCFDisk\AprilIDesignCD\Demos\ServiceBus\ Explorer\PopulateSolution\ServiceBusHelper - Buffer.cs 21 78 PopulateNamespace
c# - WCF と ServiceModelEx Service Bus を使用した奇妙な動作
ServiceModelEx の Service Bus 部分を使用しています。(および WCF サービスの自動開始に AppFabric を使用)。なんか変な挙動してる…
基本的に、サービス バスを初めて呼び出すと、すべての適切なイベントがチェーンを起動します (データベースを調べて、記録された値を確認することによって確認されます)。
しかし、その後の呼び出しでは何も起こりません。イベントが発生しないようです...
.svclogs には何の役にも立ちません。実際、後続のイベントも登録されていません。
ただし、Windows イベント ログには、バスにサブスクライブされているサービスごとに次のエラーが表示されます。
初めて正しく実行されるため、サービス属性値が正しいことは明らかです。
何か案は???
編集 1: この奇妙な動作に追加するには、Visual Studio でソリューションを「再構築」すると、バスへの最初の呼び出しが機能し、チェーンのすべてのイベントが発生し、その後の呼び出しはすべて失敗します。
wcf - WCF サービスから呼び出される InProcProxyFactory.CreateInstance
IDesign の ServiceModelEx ライブラリを使用しようとしています。電話しようとすると:
InProcFactory.CreateInstance();
WCF サービス (基本的には WCF サービス A から WCF サービス B を呼び出す) から、次のエラーが発生します。
動的アセンブリが見つかりませんでした
失敗しているコードは次のとおりです。
これは Web サイトまたは Web アプリケーション (WCF サービス) ではないため、アセンブリには App_Web または App_Code がプレフィックスされていません。ただし、Web サイト、Web アプリケーション、または EXE から呼び出すと、コードは機能します。これは設計によるものですか?
c# - 特定のサブスクライバーServiceModelExのみに公開するにはどうすればよいですか?
さて、サービスがクライアントに通知をプッシュする方法を変更します。現在、ServiceModelExが機能している方法は、いずれかのクライアントがイベントにサブスクライブされている場合、メッセージがそれらのユーザー向けであるかどうかに関係なく、サブスクライブされているすべてのユーザーにメッセージを送信することです。クライアントで、私はメッセージが彼らのためであるかどうかを決定します。ご想像のとおり、特に特定のクライアントに送信するだけでよい場合は、大量のネットワークトラフィックが発生する可能性があります。
現在、を使用してTransientSubscriptions
います。
コードをデバッグしようとしましたが、私が知ることができる唯一のことは、各サブスクライバーが何らかのタイプのジェネリックとして格納されていることCallbackChannel
です。
各TransientSubscriberはこのように定義されます。
TransientSubscriberを追加すると、これが実行されます。
より良い方法があれば、私は提案を受け入れます。すべてのクライアントではなく、1つのクライアントに通知を送信したいだけです。
また、ServiceModelExに関するmsdnの記事もあります。
c# - 例外タイプの安全性を確保するにはどうすればよいですか?
Lowy の ServiceModelEx から適用されたコードを使用して、例外を a 内にパッケージ化し、FaultException
それをネットワーク経由で送信してから、クライアント上で .NET としてアンパックしますException
。SqlException
私のサーバーは、理論的にはあらゆる種類の例外をスローできますが、例としてa を使用しましょう。
Lowy はリフレクションを使用してアンパックするため、コードは例外の型を調べて、有効なオブジェクトを構築できるかどうかを判断する必要があります。
2 つの質問
SqlExceptions では、最初の Debug.Assert が失敗します。それらをクライアントで解決しようとして、への参照を設定しました
System.Data
が、うまくいきません。System.Data
これは、そのクライアントで実際の呼び出しがなくても、コンパイラが参照を削除するためだと思いますか? 短期的には、クライアントにその.GetType
電話を解決してもらうために何ができますか?詳細の粒度 (例) を失うことなく、クライアント側でアセンブリ参照を必要とせず
LambdaException
に、をベースとして「再スロー」する正しい方法は何ですか? これは可能ですか?ExceptionDetail
StackTrace
EDIT : これは、サーバー上でをラップExceptionDetail
するソースです。FaultException
繰り返しますが、これは主に Lowy の ServiceModelEx からのものです。
.net - WCF サービス間の通信
各サービスが 1 つのクライアントによってのみ消費され、クライアントとサーバーが二重通信チャネルでセットアップされることを意図して構築された既存のアプリケーションにサービスを構築しています。
制限事項
- その既存のインフラストラクチャを再設計するオプションはありません
- 共有可能なセッションを使用できません
要件:
- クライアント サービス間で通信できるようにする必要があります (たとえば、ユーザーがアイテムをクリックしてそのアイテムを共有したい場合、クライアントは何らかの理由で「共有」機能を処理できない可能性があり、渡す必要があります。処理するために別のクライアントに送信します - これはサービスを介して行う必要があります)
- クライアント間の通信は、サービスによって行われる必要があります。
これを最初に機能させるために、2 つのクライアント間で IPC チャネル (netNamedPipeBinding) を直接セットアップしましたが、すべてをサーバー経由で送信するように言われました。このシナリオの「サーバー」は、ほとんどの場合、クライアントと同じマシンで実行されているため、この非常に大雑把な概念実証の試みを思い付きました (以下のコード ブロックを参照)。
問題: サブスクライブしているサービスに対してメソッドが呼び出されると、(メソッドが呼び出されている) 現在のサービスの操作コンテキストが null になります。これにより、クライアントにコールバックする方法がなく、サービスが終了します。
私は、Juval Löwy が ServiceModelEx フレームワークで提供しているパブリッシュ/サブスクライブ フレームワークを使用することを検討していましたが、すべてのクライアントが自分自身とそれぞれのサービスとの間で二重通信のセットアップを既に行っている場合は不要に思われました。概念的にこれらのサービスの「下」に位置し、サブスクライブしたいサービスと通信できるパブリッシング/サブスクライブ層。
アドバイスと建設的な批判を歓迎します!