2009-07-28 11 views
15

IIS 7でホストされているnet.msmqプロトコルを使用するWCFサービスが必要です。新しいメッセージがキューに表示されたときにサービスがアクティブにならず、物理的にサービスを最初にブラウズしてから、メッセージを取得してください。WCF net.msmqサービスの自動アクティベーション

これらのサービスを自動起動する方法はありますか?任意のヘルプ

種類よろしく事前に

おかげで、 ブライアン

+0

私たちは同じ問題を抱えています。マイクロソフトとのサポートコールを開始して、問題の底に到達します。私は、なぜそれが活性化していないのかについての正確なエラーまたは理由を知る方法があるのだろうかと疑問に思う。 – user80855

答えて

3

アップWCF、MSMQやIISを取得し、実行しているとトム・ホランダーのブログに一緒にうまく遊んで本当に良い3回シリーズがあります:

多分それらは役に立ちます。 IIS7でホストされているMSMQは、すべてが正しく構成されていれば、確実にWCFメッセージを自動的に取得するはずです。

いくつかの設定が用意されています(1部参照)。追加のWindows機能を追加して有効にする必要があります。また、appcmd.exeツールを実行してWAS(Windows Activation Server、 IIS7の一部)を使用して、http以外の要求を自動的に処理します。

マルク・

3

アプリケーションプールがシャットダウンされた後にサービスが起動しない場合、それはおそらくです私はそれが古いポストです知っているが、場合には他の誰かがその問題でで来る...

キュー名がサービスURIと一致しないため、WASはどのアプリケーションをアクティブ化するのかわからないためです。

あなたはデフォルトのWebサイトでのアプリケーション「サービス」を作成し、FirstService.svcを持っているのであれば、たとえば、キュ​​ー名があるべきプライベート$ \サービス/ FirstService.svc

[編集:キュー名には複数のアプリケーション名も含める必要があります]

2

これは、WASがMSMQを使用しているときに自動アクティブ化または「ウォームアップ」しないためです。ソリューションはIIS 7 Warm Up moduleを見たり、サービスをpingするロードバランサのようなものを持っています(これを行うにはF5デバイスを使用しています)。アップデート - ここにはIIS 8 App Initializationのリンクがあります。

+0

あなたのリンクは死んだ。 IIS 8.0アプリケーションの初期化は置き換えられますか? –

+0

はい、あなたは正しいです –

+0

このソリューションは私のために働いた。 IIS 7.5では、Application Initializationモジュールを別のインストールとしてダウンロードする必要があります。 –

0

IIS 7.5および.NET 4.0のWindows 7では、NetMsmqActivatorサービスが無効になっており、デフォルトで停止しています。それを有効にして起動する必要があります。

さらに、キューでは、アプリケーションプールで使用されているアカウントと、で使用されているアカウントの "受信メッセージ"と "ピークメッセージ"を許可する必要があります。既定のインストールでは、IIS APPPOOL\ASP.NET v4.0を使用できます(3 'P'を入力する必要があります。スペースに注意してください)。NETWORK SERVICE

0

私たちは、これらの性質を持つシステムでは、今ヶ月以上のため、この問題を見てきた:でホストベースの

  • ミックスのサービスを、両方のhttpとMSMQが使用IIS7.5
  • MSMQプロトコルにWAS :
  • net.msmqサービスは、ルートウェブサイトではまずいませんが、

下のアプリケーションで我々は、すべてのガイドラインと関わる問題解決tecniquesを通じて実行されている:0123を* iisおよびアプリケーションレベルでのプロトコル設定。 *キューの名前 キュー、Windowsサービス、およびiisのセキュリティ設定

ただし、問題は解決しません。 私たちのソリューションはこれに従っていた:http://www.daczkowski.net/tag/wcf/ これは私たちのiisにappfabricをインストールし、自動起動のためのサービスを設定することです。

問題自体は、私たちが言うことができるものは、単にIISで「有効」へのアプリケーションの自動起動を設定し

-1

「時々サービスがキューから処理を停止します」ということだけでは完全に定義するのではなく難しいです

0

私の解決策はここでいくつかの答えを混ぜ合わせたものです。 私のキューには認証が有効なため、認証が使用されていない場合はいくつかの手順が必要ない場合があります。ここで

は私が窓2012年、仕事にそれを置くために次の手順です:

1)非HTTPアクティブ化サービスWAP(https://msdn.microsoft.com/en-us/library/ms731053(v=vs.110).aspx

2をインストールしてください)と同じ名前のキューを作成します。このようなIISアプリケーションはprivate$/<WCF application>/myservice.svcです。

サービスNet.Msmq Listener Adapterサービスは、VdesmedTが指すIISのキューとWCFアプリケーション名を一致させようとします。

3)サイトとアプリケーションでプロトコルを有効にします。

の%windir%\ system32 \ inetsrvに\ Appcmd.exeの設定サイト "既定のWebサイト" - +バインディング[プロトコル= 'net.tcp'、bindingInformation =」を:

まずバインディングを作成します。 808:* ']

サイトのバインディングは次のようになります。 enter image description here

するとサイト

ためのプロトコル net.msmqを有効にします

%windir%\ system32 \ inetsrv \ appcmd.exe設定 セクション:system.applicationHost/sites "/ [name = 'Default Web Site']。[path = '/']。enabledProtocols": "http、net.msmq"/commit:apphost

このコマンドはプロトコルを書き換えます。したがって、http以上のイネーブルがある場合は、コマンドラインに追加する必要があります。

enter image description here

をそして最後にアプリケーションのためのプロトコルnet.msmqを有効にします。

高度Settinsで、あなたはこれを見るべきです。

% WINDIR%\ SYSTEM32 \ inetsrvに\ Appcmd.exeの設定アプリ "既定のWebサイトには、/" /enabledProtocols:http,net.tcpは

アプリケーションのための高度な設定]画面は、同じことを示さなければなりません有効なプロトコルの行でサイトの詳細設定に表示されるもの。

4)IISアプリケーションのキューに対して読み取り、表示、削除、プロパティの取得、プロパティの設定を許可します。 デフォルトのアカウントは、IISアプリケーションプール\ DefaulApp

5)サービスNet.Msmq Listener AdapterのキューにPEEKの許可を与えるです(デフォルトはNetwork Serviceある)

必要はありませんが、私はパーミッションを変更した後に再起動する必要がありました。

チェック:WCFは適切にそれをアクティブにするWCF アプリケーションを閲覧使う設定がある場合

  • を確認するには。キュー内のメッセージはすべて処理する必要があります。

  • WASがWCFアプリケーションをアクティブ化しているかどうかを確認するには、アプリケーションプールをリサイクルして新しいメッセージを送信します。 WAS が機能する場合、すぐに処理する必要があります。

関連する問題