web-dev-qa-db-ja.com

ASP.NET WebAPIから実行可能ファイルを呼び出す

私はAngularアプリケーションにテーブルがあり、コンソールアプリケーションにユーザーが実行できるC#プログラムの名前を付けることを検討しています。

コンソールアプリケーションを実行するASP.NET WebAPIコントローラーにコンソールアプリケーションの名前またはコードを渡すことを考えていました。

ただし、ASP.NET WebApiのコントローラーが別のコンソールアプリケーションを呼び出すことが「適切な」アーキテクチャであるかどうかはわかりません。または、WebApiと実行可能ファイルの呼び出しの間にレイヤーが必要な場合。

それが正しい方法か、別のアプローチを考えるべきかを教えてください。

2
rds80

Web APIで実行可能ファイルを呼び出すのは良い考えではありません。考慮しなければならない問題がいくつかあります。

1:セキュリティ

基本的に、コマンドラインをWebに公開しています。コンソールアプリケーションの起動方法に問題があると、悪意のあるユーザーが予期しないコマンドを実行できる可能性があります

2:スレッドが不足しています

Webアプリでは、各リクエストに迅速に応答することを期待していますが、コンソールアプリの実行時間はわかりません。リソースが不足する可能性があります

3:権限の問題

デフォルトでは、コンソールアプリは、アプリプールを実行しているのと同じユーザーとして実行されます。十分な権限がありますか?許可が多すぎますか?アプリを実行するときに、別のユーザーに成り代わる必要があるかもしれません。

4:終了しますか?

コンソールアプリにはそれほど問題はありませんが、Excelなどを起動して、メモリが消えるのを確認してください

最善のオプションは、コンソールアプリケーションからビジネスロジックを取り出し、ライブラリとして直接使用することです。しかし、ソースコードがない場合、これは不可能かもしれません。

APIまたはライブラリを提供する代替製品を探す

ただし、コンソールアプリを実際に実行する必要がある場合は、実行できます。要注意

3
Ewan