IIS/WCF実装の多くの問題をゼロからテストするために、HelloWorldサービスとクライアントを作成しました(非常にきれいに)here。 net.tcpのエンドポイントを追加しました。サービスは、両方のバインディングに対して、IIS 7.5
(Windows 7の場合)という独自のという名前で、エンドツーエンドで正しく動作しています。IIS 7.5/WCFサービスではAutoStart/Pre-warm機能が動作しません
私が取り組んでいるのは、発表されているAutoStartとPreload(または "pre-warm caching")の機能です。私はhereとhere(互いに非常に似ていますが、常に第二の意見を持つのが良い)指示された指示に非常に密接に従ってきました。どのI
手段1)アプリケーションプールstartMode
を設定...
<applicationPools>
<!-- ... -->
<add name="HW" managedRuntimeVersion="v4.0" startMode="AlwaysRunning" />
</applicationPools>
2)...)serviceAutoStart
を有効にして、私のserviceAutoStartProvider
<site name="HW" id="2">
<application path="/" applicationPool="HW" serviceAutoStartEnabled="true" serviceAutoStartProvider="PreWarmMyCache" />
<!-- ... -->
</site>
3へのポインタを設定し...そのプロバイダの名前をつけて、クラスのGetType().AssemblyQualifiedName
がその全体の下に記載されている
<serviceAutoStartProviders>
<add name="PreWarmMyCache" type="MyWCFServices.Preloader, HelloWorldServer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</serviceAutoStartProviders>
using System;
namespace MyWCFServices
{
public class Preloader : System.Web.Hosting.IProcessHostPreloadClient
{
public void Preload(string[] parameters)
{
System.IO.StreamWriter sw = new System.IO.StreamWriter(@"C:\temp\PreloadTest.txt");
sw.WriteLine("Preload executed {0:G}", DateTime.Now);
sw.Close();
}
}
}
ああ、すべてこのマニュアルの構成に加え、夫婦iisreset
呼び出し、と私は何を取得。いいえw3wp.exe
タスクマネージャでプロセスが起動します(HelloWorldClientを起動しても取得できます)。テキストファイルはありません。
この機能については、SOまたはより広範なWebで不満足なほどの議論がありますが、ここではあまり注意を払わない類似の質問もいくつかあり、すべて警告音が鳴ります。おそらく、不必要なことにもかかわらず - この非常に道のりを一歩下にたどりついた専門家がいるか、時間をかけて2つのケアをするのか? (。あなたはそれをホストするのに適した場所を提案することができれば、ソリューション全体を提供するハッピー)
EDIT:私は相対App_Data
フォルダにPreload
方法でそのパスをリセットしてみました(他はSO提案答えますそれは問題ではありませんでした。また、私はw3wp.exe
プロセス火災をローカルホストへの簡単なブラウズで学びました。このプロセスでは、1つの小さなOperationContractを処理するために17MBのメモリが消費されますが、価格はゼロのPreload値を提供します。 17MBのColdDeadCache
ありありイベントログに手がかりがありますか?スローされた例外はそこに表示されるはずです。 – Addys
いいえ、何もありません。サービスがうまく動作すれば、例外が予想される理由は分かりません。 – downwitch
確認できることはいくつかあります: - あなたのサイトのIDは2ですか? - サイトとアプリケーションプールの名前が同じであることが正しいですか? - 例より多くの属性を指定しましたが、例のものを指定するだけで違いがありますか? –