IISでホストされている場合、アプリケーション内部をどのようにチェックすることができますか?Asp.Net(Core)アプリケーションがIISでホストされているかどうか確認してください。
3
A
答えて
0
私は、それをどのようにして実現するかという直接的な方法はないと信じています。少なくとも私は1つを見つけていない。なぜなら、後で自分自身に関する情報が明らかにされない限り、ASP.NET Coreアプリケーションは実際には親コンテキストについて何も知らない自己完結型アプリケーションだからです。
たとえば、設定ファイルでは、実行しているインストールの種類を確認できます:production
またはdevelopment
です。 production
はIIS
、development
はそうではないと仮定できます。しかし、それは私のために働いていませんでした。私の生産設定はIIS
またはwindows service
のいずれかになります。
私は実行するはずの実行の種類に応じて、アプリケーションに異なるコマンドライン引数を指定することでこの問題を回避しました。それは実際には、私にとって自然に来ました。windows service
は実際には異なるアプローチを必要とするからです。私の場合のコードの例については
はややそうのように見えた:
namespace AspNetCore.Web.App
{
using McMaster.Extensions.CommandLineUtils;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Hosting.WindowsServices;
using System;
using System.Diagnostics;
using System.IO;
public class Program
{
#region Public Methods
public static IWebHostBuilder GetHostBuilder(string[] args, int port) =>
WebHost.CreateDefaultBuilder(args)
.UseKestrel()
.UseIISIntegration()
.UseUrls($"http://*:{port}")
.UseStartup<Startup>();
public static void Main(string[] args)
{
var app = new CommandLineApplication();
app.HelpOption();
var optionHosting = app.Option("--hosting <TYPE>", "Type of the hosting used. Valid options: `service` and `console`, `console` is the default one", CommandOptionType.SingleValue);
var optionPort = app.Option("--port <NUMBER>", "Post will be used, `5000` is the default one", CommandOptionType.SingleValue);
app.OnExecute(() =>
{
//
var hosting = optionHosting.HasValue()
? optionHosting.Value()
: "console";
var port = optionPort.HasValue()
? new Func<int>(() =>
{
if (int.TryParse(optionPort.Value(), out var number))
{
// Returning successfully parsed number
return number;
}
// Returning default port number in case of failure
return 5000;
})()
: 5000;
var builder = GetHostBuilder(args, port);
if (Debugger.IsAttached || hosting.ToLowerInvariant() != "service")
{
builder
.UseContentRoot(Directory.GetCurrentDirectory())
.Build()
.Run();
}
else
{
builder
.UseContentRoot(Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName))
.Build()
.RunAsService();
}
});
app.Execute(args);
}
#endregion Public Methods
}
}
このコードは、ホスティング(service
とconsole
- IIS
を使用することになっていることオプション)の選択タイプを可能にするだけでなく、することができますあなたがWindowsサービスとして実行しているときは、重要なポートを変更してください。
また、引数解析ライブラリMcMaster.Extensions.CommandLineUtils
を使用すると、構成されたコマンドラインスイッチに関する情報が表示されるため、適切な値を選択するのが簡単になります。
関連する問題
- 1. IISが.BAT経由でインストールされているかどうか確認してください
- 2. ファイルがアップロードされているかどうか確認してください。
- 3. python:ホスト名が解決されているかどうかを確認してください。
- 4. DLLが別のアプリケーションで使用されているかどうかを確認してください
- 5. アプリケーションがFlutterで最初に実行されているかどうか確認してください
- 6. twitterアプリケーションがインストールされているか確認してください
- 7. ステータスバーが隠れているかどうかを確認してください
- 8. アプリケーションが実行されていないか確認してください。
- 9. Java - 別のJavaアプリケーションが実行されているかどうかを確認してください。
- 10. アプリケーションが既に実行されているかどうか確認してください
- 11. RunOnUiThreadが必要かどうか確認してください。
- 12. Curlドメインがルートかどうか確認してください。
- 13. DrawableResがVectorDrawableかどうか確認してください
- 14. テスト:タプルが返されるかどうか確認してください。
- 15. IIS 6.0でホストされているASP.NETアプリケーションを監視していますか?
- 16. アプリケーションがインストールされているかアンインストールされているかを確認してください
- 17. アップロードファイルがパスワードで保護されているか確認していないか確認してください。
- 18. 他のアプリケーションがビジー状態かどうかを確認してください
- 19. プロセスがアイドリングしているかどうかを確認してください。
- 20. flinkがサポートしているかどうかを確認してください。
- 21. グラブルテストがシェルスクリプトで行われるかどうか確認してください
- 22. オブジェクトがリリースされたかどうかを確認してください。
- 23. Plone:フォームが提出されたかどうか確認してください。
- 24. マウスクリックが処理されたかどうか確認してください
- 25. QColorDialogがキャンセルされたかどうかを確認してください。
- 26. カラム名が渡されたかどうかを確認してください。
- 27. リンクされたリストが回文かどうか確認してください
- 28. program_optionsが追加されたかどうか確認してください
- 29. sedコマンドが変更されたかどうか確認してください。
- 30. vbscriptでiis認証設定を確認してください