2016-05-21 9 views
7

既存のService Fabricクラスタに新しい.NET Core RC2 MVCアプリケーションを追加したいが、これをどうやってやるべきか分からない。.NET Framework RC2 in Service Fabric

私はいくつかのRC1の例を見てきましたが、私にはそれ以上のことはありませんでした。 ServiceManifest.xmlファイルにEntryPointを追加する必要があることを理解しています。 しかし、RC1の例では、それらはRC2で削除されましたdnx.exe、を指す:

<EntryPoint> 
    <ExeHost> 
     <Program>approot\runtimes\dnx-clr-win-x64.1.0.0-rc1-update1\bin\dnx.exe</Program> 
     <Arguments>--appbase approot\src\ChatWeb Microsoft.Dnx.ApplicationHost Microsoft.ServiceFabric.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener</Arguments> 
     <WorkingFolder>CodePackage</WorkingFolder> 
     <ConsoleRedirection FileRetentionCount="5" FileMaxSizeInKb="2048" /> 
    </ExeHost> 
    </EntryPoint> 

エントリーポイントは、私は.NETのコアのRC2版で使用する必要がありますか?

ありがとうございます!

答えて

5

はこの発表をチェックアウト:

Announcing ASP.NET Core RC2

あなたが見ることができるように、RC2を使用してASP.NET Coreアプリケーションがコンソールアプリケーションになります。

あなたのエントリポイントは、あなたのASP.NETコアコンソールアプリケーションのコンパイルから出てくる、あなたのEXEである、と述べました。

Startup.csのMainメソッドを取得するDNXに頼るのではなく、Program.csでツールチェインをセットアップしてから、Service FabricがEntryに使用するEXEを作成するだけです。

public class Program 
{ 
    public static void Main(string[] args) 
    { 
     var host = new WebHostBuilder() 
     .UseKestrel() 
     .UseStartup<Startup>() 
     .Build(); 
     host.Run(); 
    } 
} 

だからあなたのマニフェストにはこのようなものになるだろう:私はコメントで既に述べたように

<EntryPoint> 
    <ExeHost> 
     <Program>YourApp.Exe</Program> 
    </ExeHost> 
</EntryPoint> 
+0

お返事ありがとうございます。私はこれが正しいと信じていますが、プロジェクトをビルドしても私に.exeファイルは提供されません。ちょうど.dll。この.exeファイルを私に提供するために私のプロジェクトをどのようにセットアップできるか知っていますか? –

+2

@johandroidあなたのプロジェクトはコンソールアプリケーションでなければなりません。新しいService Fabricプロジェクトをゼロから作成し、Stateless Web APIを選択します。作成したら、それがC#Console Applicationであることを確認してください。それをビルドすると、binフォルダにEXEがインストールされます。 PackageRoot \ ServiceManifest.xmlを開くと、EXEがEntryPointとして設定されていることがわかります。 ASP.NET Core RC2はOWINとWebAPI 2のアイデアで構築されているので、同じプロジェクト構造を設定する必要があります。サービスファブリックにはIISがないことを覚えておいてください。Web Appは自己ホスト型でなければならず、それがMainメソッドで設定されている必要があります。 –

+0

私は同じレベルにあり、例を探しています...ありますか?今のところ私はhttps://blogs.msdn.microsoft.com/lucian/2015/08/19/using-project-json-for-other-project-types/にproject.jsonなどを使用してアクセスします – rfcdejong

0

、それはコンソールアプリケーションでなければなりません。それクローンhttps://github.com/weidazhao/Hosting

を見て、SmsServiceとCounterServiceのプロジェクトは、ASP.NETコア1.0 RC2のプロジェクトであることを参照してください。

+1

実際にはそうではありません。上記のソリューションの "Sms"プロジェクトは実際にはコンソールアプリケーションです。実行可能なbin/debugフォルダにEXEを生成します。追加されたのは、ツールチェーン内のServiceFabricホスティングだけでもあります。あなたが行.UseServiceFabricEndpoint( "SmsTypeEndpoint")とServiceRuntime.RegisterServiceAsync( "SmsType"、serviceContext =>新しいSmsService(serviceContext、communicationContext))を削除すると、GetAwaiter()、GetResult(); appSettings.jsonをオプションにすると、Service Fabricなしで自分のPCでEXEを実行できるようになります。 –

+1

これは、ASP.NET Coreプロジェクトのデフォルトのようです。通常、ProgramのWebHostBuilderを使用します。csメインエントリポイント。それがコンソールアプリケーションであるという事実は隠されています。私の答えでは、コンソールアプリケーションを自分で作成する必要はなく、ASP.NET Coreプロジェクトにするだけです。あなたの答えも正しいですが、私はサンプルへのリンクで答えました。 – rfcdejong

関連する問題