問題タブ [was]
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 - Azure WebRole で (Windows Activation Service 経由で) IIS と同じポートで TCP ベースの WCF サービスをホストする
IIS と同じポートで TCP ベースの WCF を使用する場合、Azure Webrole をどのように構成する必要がありますか?
オンプレミス ソリューションでは通常、WAS アクティベーションを使用しますが、これには通常、HTTP ポートのアクセス許可の設定などが含まれます。Windows Azure では、このインターフェイスはすぐには利用できません。
wcf - WAS を使用した WCF サービス: サービスはキューのパス名を変換できません
同じドメイン内の別のサーバーにある MSMQ の WAS 経由でリッスンする WCF サービスを取得しました。
セットアップは次のようになります。
サーバー A: Windows Server 2008 は、IIS で WCF サービスをホストします。
サーバー B: Windows Server 2008 (ドメイン コントローラー) は、プライベート MSMQ (AD 統合) をホストします。
さらに、WCF を使用して MSMQ 経由でサービスにメッセージを送信するサーバー A で実行されているコンソール クライアントも取得しました。現時点では、セットアップ全体が機能し、サービスがクライアントからのメッセージを処理します。クライアントのセキュリティ モードは に設定されtransport
、サービスのセキュリティ モードは に設定されていnone
ます。
しかし、サービスのセキュリティモードをtransport
メッセージに切り替えると、それ以上処理されません。サービスのトレースを有効にしたところ、サービスが別のサーバーの MSMQ にアクセスしようとすると問題が発生することがわかりました。none
セキュリティ モードとの両方で警告とエラー メッセージ (以下を参照) が表示されますが、 サービスtransport
に設定するとnone
、 は問題を無視しているように見え、メッセージを処理します。
エラーメッセージには次のように記載されています。
'murdock.ltportale.intern\private$\EventSyncService/EventSynchorinzationService.svc' キュー パス名を形式名に変換するときにエラーが発生しました: 認識できないエラー -1072824300 (0xc00e0014)。キューに入れられたチャネルに対するすべての操作が失敗しました。キュー アドレスが有効であることを確認してください。MSMQ は、Active Directory 統合を有効にしてインストールする必要があり、アクセスできる必要があります。
サービスは security mode で MSMQ のアドレスを見つけることができるので、MSMQ のアドレスが間違っているとは思いませんnone
。また、MSMQ が AD 統合で実行されることも確信しています。これは、私の環境で動作させるのに 2 日かかったからです。
現時点では、何が間違っているのかわかりません。セキュリティ モードなしでセットアップを実行することtransport
は、私の次のステップがトランザクションを有効にすることになるため、私にとってはオプションではありません。また、トランスポート モードが機能しない場合は、トランザクション モードも機能しないと思います。
警告メッセージ:
エラーメッセージ:
構成クライアント
構成サービス
wcf - IIS7.5 WAS でホストされている MSMQ WCF サービスの確認 (再開)
IIS7.5 (WAS) でホストされている wcf msmq サービスがキューからのメッセージの処理を停止するという問題が発生してから、1 か月以上が経過しています。
「ある時点で」キューからのメッセージの処理を停止する以上に絞り込むことはできませんでした。http ブラウザー呼び出しを介してサービスを呼び出すと、処理が再開されます。
この問題に関する非常に多くの記事、ブログ、およびフォーラムの投稿を読んだ後、次のことを確認しました: セキュリティ設定、プロトコル バインディング、および msmq/サービスの命名。
この記事http://www.daczkowski.net/2010/11/19/leveraging-msmq-in-asp-net-application-through-wcf-service/に励まされて、最終的に(ほぼ)問題を解決したようですWindows Server 2008 r2 sp1 64 ビットの場合、Windows 7 32 ビットではまだ表示されるようです。
さて、私の質問に移ります:AppFabric拡張機能を実行していないIIS7.5でmsmq WASがホストするwcfサービスが(すべての条件下で)実際に再起動するという保証が実際に存在するかどうか(これに関するドキュメントをいただければ幸いです)、誰か教えてください。 ?
この質問が非常に複雑であることは認識していますが、この再起動の問題を解決するために AppFabric を使用して OTS パッケージを拡張する必要がある理由についてのドキュメントが必要です。
よろしくお願いします、
wcf - WAS によってホストされる WCF サービスへの要求は、IIS 処理パイプラインによって認証されますか?
次の質問は、WAS で Asp.Net と並んで WCF サービスをホストしていると仮定しています。
「WCF を Asp.Net と並べてホストする場合 - WCF ホスティング インフラストラクチャは、PostAuthenticateRequest イベントが発生したときに WCF 要求をインターセプトし、処理を ASP.NET HTTP パイプラインに返しません。モジュールの後の段階で要求をインターセプトするようにコーディングされているモジュールパイプラインは WCF リクエストをインターセプトしません。」
「サイド バイ サイド構成では、WCF ホスティング インフラストラクチャが WCF メッセージをインターセプトし、HTTP パイプラインからルーティングします」
a) WAS が WCF サービスの要求を受信すると仮定すると、イベントが発生したときに WCF の認証メカニズム ( Windows、MembershipProviderまたはCustom authentication ) が呼び出されますPostAuthenticateRequest
か、それとも HTTP パイプラインから要求をルーティングした後にのみ WCF が要求を認証しますか? 言い換えれば、WCF の認証メカニズムは IIS の処理パイプラインの外で機能していますか?
b) WCF の認証メカニズムが IIS 処理パイプラインの外部で機能している場合、FormsAuthenticationModuleは WCF クライアントの認証に関与していないと思います (サービスがフォーム認証を使用していると仮定します)。
c) また、WCF の認証メカニズムが IIS 処理パイプラインの外部で機能している場合、サービスが Windows 認証を使用してクライアントを認証している場合でも、IIS/WAS を匿名認証用に構成する必要があると思いますか?
d) 上記の質問への回答は、WCF サービスが IIS7 によってホストされていた場合 (サービスが HTTP プロトコルを介して通信するエンドポイントのみを使用する必要があるという事実に加えて) 異なるでしょうか?
ありがとうございました
c# - net.tcpバインディングを使用してIIS7でWCFサービスをホストする-サービスの使用中にエラーが発生しました
IIS 7 / Win 7でネットTCPバインディングを使用してWCFサービスをホストしようとしています。サービスがホストされており、クライアントアプリケーションでそのサービスへの参照を追加できます。
サービス構成ファイルは次のとおりです。
そして、参照を追加したときにクライアントで生成される構成は次のとおりです。
問題は実行時にあり、次のエラーが発生します:-
net.tcp:// localhost:10000/AppServer.ApplicationProcess.svcに接続できませんでした。接続の試行は00:00:02.0582058の期間続きました。TCPエラーコード10061:ターゲットマシンがアクティブに拒否したため、接続できませんでした。
http://www.singingeels.com/Articles/Duplex_WCF_Services_Hosted_in_IIS_Using_NetTcp.aspxで説明されている手順に従いました
ファイアウォールにインバウンドルールを作成して、ポート10000でのTCP通信を許可しました。何が欠けているのかわかりません。何かご意見は?
wcf - net.tcp WCF サービスを localhost から新しいサイトの IP アドレスに移動すると、サービスが読み込まれません
2 つの WCF サービスを実行している Web サイトがあります。IIS7 の「既定の Web サイト」から新しい IP アドレスを持つ専用の Web サイトに移動する必要があるまでは、うまく機能していました。今、私はエラーメッセージを受け取ります:
「...そのコントラクトの複数のエンドポイント構成が見つかったため、読み込めませんでした。優先するエンドポイント構成セクションを名前で指定してください」
私がしたのは変更だけでした:
net.tcp://localhost/...
に:
net.tcp://10.1.2.204/...
以前は localhost を使用していた設定のすべての場所を指定された IP アドレスに変更しました。新しい Web サイトは、適切な net.tcp バインディングを使用してまったく同じようにセットアップされ、10.1.2.204 の単一の IP アドレスにバインドされます。
何が起こっているのか理解できないようです。私は svc トレース ログを見ていますが、得られるのは同じものばかりです。
私の新しい Web サイトは「コア」と呼ばれますが、以前は「既定の Web サイト」でホストしていました。この新しいサイトにルーティングするために、新しい FQDN/パブリック IP を追加しました (上記のプライベート IP アドレスに逆戻り)。今、私のサービスは逮捕されました。
IIS/WAS ホスティングの使用時に baseAddress が無視されることはわかっているため、他に何を確認すればよいかわかりません。構成で他に何も変更しませんでした。
この問題のトラブルシューティングを支援するために、他に何を提供できますか?
--
サービス トレース ビューアーにもこれが表示されます。
アクティビティ名 接続でバイトを受信 'net.tcp://hole.myserver.com/...' でリッスン。
...しかし、WCF サービスは実際には、新しい「コア」Web サイトでホストされており、これが新しいプライベート IP アドレスに変換されます。例の FQDN 名を変更しました。明確にするために:
このサーバーには、既定の Web サイトを使用して 1 つの FQDN がありました。
このサーバー、新しい Web サイト、2 番目の IP に 2 番目の FQDN を追加しました。リッスンは、net.tcp://hole.myserver.com ではなく、net.tcp://core.myserver.com に向ける必要があるように思えます。サーバー名がhole.myserver.comで、同じサーバー上の新しいWebサイトがcore.myserver.comであるとしましょう。
これが紛らわしくなく、理解できることを願っています。
デフォルトの net.tcp ポート 808 とバインディング 808 を使用しています:*
--
これは、私が知ることができる最初の例外です。
ソケット接続が中止されました。これは、メッセージの処理中にエラーが発生したか、リモート ホストが受信タイムアウトを超過したか、基になるネットワーク リソースの問題が原因である可能性があります。ローカル ソケットのタイムアウトは「00:00:10」でした。
--
これらの組み合わせはいずれもサービスをアクティブにせず、すべて同じ例外を生成します。
net.tcp://localhost net.tcp://localhost:808 net.tcp://10.1.2.204 net.tcp://10.1.2.204:808
問題なく以前に行った別のポートを使用しても:
net.tcp://localhost:75 net.tcp://10.1.2.204:75
これらのどれも機能しません。:(
本当にありがとう!
wcf - WCF、WAS、IIS、およびポート
やあ、
私はしばらくの間 WCF を使用してきましたが、はっきりしないことがあります。
IIS で WCF サービスをホストする場合、標準プロトコルは http で、既定のポートは 80 です。必要に応じて、このポート番号を変更できます。
次に、TCP プロトコル (WAS) を使用して IIS で WCF サービスをホストすることもできます。ただし、WCF サービスは引き続き http プロトコルのポート 80 で mex を公開しますが、WCF TCP 通信のポート番号を確認するにはどうすればよいですか?
最初に mex のポート番号 (通常はポート 80) を開き、次に WAS (IIS の WCF TCP) ポートを開く必要があると思いますか?
よろしくお願いします
asp.net - ASP.NET に似た WCF ヘルス モニタリング
ASP.NET には、ヘルス モニタリングと呼ばれる便利な機能があります。セクションで定義するsystem.web/healthMonitoring
と、ログ/分析するための非常に便利な Web イベントが得られます。ASP.NET 互換モードを使用せず、IIS7/WAS でホストされている WCF サービスに同様の手段はありますか?
更新:私が見つけたのは、WCF サービスの web.config で system.web/healthMonitoring を有効にすると、いくつかの Web イベントを取得できることです: System.Web.HttpRuntime, 1002, "Application is shutting down. Reason: Configuration changed." . ハートビートなどはありません。ASP.NETがプロセスに関与していない場合、それがどのように機能するかわかりませんが、それは事実です.
nhibernate - リサイクル後に新しいAppPoolを開始するようにWASに指示できますか?
データアクセスに(Fluent)NHibernateを使用しているこの管理サイトがあります。他の場所で述べたように、Configurationオブジェクトの作成により、SessionFactoryの初期化は遅くなります。推奨される解決策は、構成オブジェクトをディスクにシリアル化し、エンティティアセンブリまたは流暢な初期化アセンブリが変更されるまでこれを再利用することです。
理論的には、これらは非常にエレガントで魅力的に聞こえます。実際には、1エンティティのモデルでも、構成の逆シリアル化には約500ミリ秒かかり、SessionFactoryの作成にはさらに500ミリ秒かかります。(これは、シリアル化を行わない場合の起動時間に相当しますが、エンティティを追加すると、ゲインが明らかになると思います。)
IISがアプリケーションプールをリサイクルした後、新しい要求が着信するまでアプリケーションプールは再起動しません。したがって、IISのデフォルトのリサイクル管理(29時間ごと)と、管理者が1日に1回管理サイトにログインするというシナリオが考えられます。この1秒の遅延は、この管理者がログインするたびに発生し、開始サイトが遅いという印象を与えます。
では、IIS / WASに、次の要求が来るまで待つのではなく、リサイクルの一環として交換用のアプリケーションプールを実際に開始するように指示する方法があるのでしょうか。これは、WASが常に実行中のアプリケーションプールをできるだけ少なくしようとするという考えに反していることを認識していますが、問題は解決します(アプリケーションプールが起動するとすぐにServiceHostFactory + ServiceHostが作成されると想定しているため)。
wcf - ホストはIISなしでホスティングしていました
IIS5を搭載したWindowsXPを使用していますが、データベースアクション中に認証の問題が発生しています。私は無邪気にしようとしましたが、それは私にとってはうまくいきませんでした。
XPマシンでIIS(5)なしでWCFサービスをホストできますか?これを確認してください。