ビジュアルスタジオからビルドを開始したasp.netコアアプリケーションがあります。通常、F5キーを押すかビジュアルスタジオのデバッグボタンを押すと正常に動作します。ASP.Netコアアプリケーションはビジュアルスタジオで動作しますが、ドットネットは動作しません
しかし、私がコマンドラインからdotnet run
を使用しようとすると、それでも動作し、デフォルトのポート5000でリッスンを開始します(これはkestrelのリスニングであると仮定しています)。
しかし、http://localhost:5000を使用して任意のブラウザからページにアクセスしようとすると、接続できないというエラーが表示されます。私はVisual Studioから実行すると、自動的にIISの背後にある私のアプリを置くことが理解されていますが、私はアプリがちょうど自己ホストされている場合、なぜ動作しないのか分かりません。
私は自分のプロジェクトをLinux環境に移したいと思っています。これが今私を止めているようです。私はcliを通じて新しいdotnetアプリケーションを作成してテストしましたが、ブラウザでアクセスしようとするとうまくいけば、VSで作成したこの特定のアプリケーションは動作しないようです。
マイdotnet --version
リターン1.0.4
編集(詳細な回答)
だから以下Sanketの答えに追加するには、私はまた、私は私のASPNETCORE_ENVIRONMENT
を設定していた場合、私のアプリは、働いていた理由本当の理由を考え出しました開発へ
それは私の環境はとてもように開発した場合、私はのみ設定するテストメールサービスを設定していたことが判明:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory,
WorldContextSeedData seeder)
{
if (env.IsEnvironment("Development"))
{
app.UseDeveloperExceptionPage();
loggerFactory.AddDebug(LogLevel.Information);
}
}
しかし、私のコントローラの一つで、私は環境をチェックせずに、メールサービスをinitalizedていましたそのよう:
public AppController(IMailService mailService, IConfigurationRoot config, WorldRepository repository, ILogger<AppController> logger, IHostingEnvironment env)
{
_env = env;
_mailService = mailService;
_config = config;
_repository = repository;
_logger = logger;
}
私はステージング環境のためUseDeveloperExceptionPage()
を設定することを決めたとき、私はこの問題を認識し、それはすぐに私の問題があった場所、私はそれを実行したと明らかになりました。私のコントローラクラスは、最初に設定されていないときにメールサービスを初期化しようとしていました。だからコントローラにいくつかの変更を加えました:
public AppController(
#if Development
IMailService mailService,
#endif
IConfigurationRoot config,
IWorldRepository repository, ILogger<AppController> logger, IHostingEnvironment env)
{
_env = env;
#if Development
_mailService = mailService;
#endif
_config = config;
_repository = repository;
_logger = logger;
}
そして、私のアプリはどんな環境でも動作します。
'dotnet YourProject.dll'を試してみませんか?例: 'dotnet WordApp.dll' – Win
また、ホスティング環境変数もチェックしてください。 Visual Studioの場合は「開発」、ドットネットの場合は「プロダクション」で動作している可能性があります。 – Sanket
@Sanketあなたが正しいと分かった。環境変数を「開発」に設定する方法を理解したら、それは魅力的な働きをしました。私はこれを閉じることができるように答えとして投稿できますか? –