問題タブ [service]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - バッチ ファイルを呼び出した後、WaitForExit でサービスがハングアップする
バッチ ファイルを呼び出すサービスがあります。バッチ ファイルの実行には 5 ~ 10 秒かかります。
ファイルは存在し、同じコードをコンソールで実行するとコードが機能します。ただし、サービス内で実行すると、 でハングアップしWaitForExit()
ます。続行するには、プロセスからバッチ ファイルを強制終了する必要があります。(プロセスリストで確認できるので、ファイルが存在することは確かです。)
このハングアップを修正するにはどうすればよいですか?
更新 #1:
Kevin のコードを使用すると、出力を取得できます。バッチ ファイルの 1 つがまだハングしています。
"C:\EnterpriseDB\Postgres\8.3\bin\pg_dump.exe" -i -h localhost -p 5432 -U postgres -F p -a -D -v -f "c:\backupcasecocher\backupdateevent2008.sql" -t "\"public\".\"dateevent\"" "DbTest"
他のバッチ ファイルは次のとおりです。
"C:\EnterpriseDB\Postgres\8.3\bin\vacuumdb.exe" -U postgres -d DbTest
パスを確認しましたが、postgresql
パスは問題ありません。出力ディレクトリは存在し、サービスの外部でも機能します。何か案は?
更新 #2:
バッチ ファイルのパスの代わりに、「C:\EnterpriseDB\Postgres\8.3\bin\pg_dump.exe」をproc.StartInfo.FileName
記述し、すべてのパラメーターを に追加しましたproc.StartInfo.Arguments
。結果は変わりませんがpg_dump.exe
、プロセス ウィンドウに が表示されます。繰り返しますが、これはサービス内でのみ発生します。
更新 #3:
管理者グループのユーザーでサービスを実行しましたが、役に立ちませんでした。null
サービスのユーザー名とパスワードを復元しました
更新 #4:
イベント ログにトレースを書き込み、"dir" を含むバッチ ファイルを実行する簡単なサービスを作成しました。でハングしますproc.Start();
-アカウントをLocalSystemからユーザーに変更しようとしましたが、管理者のユーザーとパスワードを設定しましたが、まだ何もありません。
c# - Process.Start() を使用して、Windows サービス内から別のユーザーとしてプロセスを開始する
Windows サービスから指定したユーザー アカウントで任意の .NET exe を定期的に実行したいと考えています。
これまでのところ、ターゲットプロセスが何であるか、いつ実行するかを決定するロジックを使用して Windows サービスを実行しています。ターゲット プロセスは、次の方法で開始されます。
- Windows サービスは、「管理者」資格情報を使用して開始されます。
- その時が来ると、どのプロセスを開始するか (ファイル名、ユーザー名、ドメイン、パスワード) を詳細に示す引数を使用して、中間の .NET プロセスが実行されます。
- このプロセスは、新しい System.Diagnostics.Process を作成し、渡された引数で満たされた ProcessStartInfo オブジェクトを関連付けてから、プロセス オブジェクトで Start() を呼び出します。
これが初めて発生すると、ターゲット プロセスは正常に実行され、その後正常に終了します。ただし、その後は毎回、ターゲット プロセスが開始されるとすぐに、「アプリケーションを適切に初期化できませんでした (0xc0000142)」というエラーがスローされます。Windows サービスを再起動すると、プロセスが再び正常に実行されます (最初の実行の場合)。
当然のことながら、目標はターゲット プロセスが毎回正常に実行されるようにすることです。
上記の手順 2 について: 別のユーザーとしてプロセスを実行するには、.NET は win32 関数 CreateProcessWithLogonW を呼び出します。この関数には、指定されたユーザーをログインさせるためのウィンドウ ハンドルが必要です。Windows サービスは対話モードで実行されていないため、ウィンドウ ハンドルはありません。この中間プロセスは、ターゲット プロセスに渡すことができるウィンドウ ハンドルを持っているため、問題を解決します。
psexec や Windows タスク プランナーの使用に関する提案はありません。私は自分の運命を受け入れました。それには、上記の方法で問題を解決することも含まれます。
asp.net - ASP.NETでXMLを返す方法
これは非常に基本的な質問です。私はASP.NET(C#)を学ぶという使命を帯びています。私は以前に古典的なASPとPHPを実行しました。
このプロジェクトでは、 ASP.NET2.0を手にしています。
AJAXを介してXMLデータをフィードしたいjqGridDatagridを含むWebフォームがあります。ただし、ここではjqGridは問題ではありません。「問題」は、XMLを生成するために私が取るべきアプローチです。
ASP.NETでそれを行うにはどうすればよいですか?
- そのデータを生成する新しいWebフォームを作成しますか?
- 新しいWebサービスを使用しますか(必要なXMLが返されませんか?)?
- どういうわけか、テーブルを表示する既存のWebフォームに関数を配置しますか?もしそうなら、どのように?
その決定がなされた後:XMLを出力するにはどうすればよいですか?ASP.NETのXMLコンポーネントは使用したくありません。これは、レコードが1つずつ続く単純で単純なXMLだからです。System.Xmlを使用すると、オーバーヘッドが大きすぎて、ここで正当化できません。
他のスクリプト言語での以前の経験から、XMLタグのストリーム(Response.Write)を印刷したいと思います。ASP.NETでそうすると、地獄に行きますか?
asp.net - ネットワークサービスアカウントにASP.NETWebアプリケーションへの読み取り/書き込みアクセス許可を与えることの危険性は何ですか?
ネットワークサービスアカウントにASP.NETWebアプリケーションへの読み取り/書き込みアクセス許可を与えることの危険性は何ですか?VistaDbデータベースのApp_Dataや、画像を更新したりテキストファイルに変更を加えたりするためのランダムなディレクトリなど、アプリが書き込む必要のあるディレクトリに対してこれを行う必要があります。これを行うことの危険性は何ですか。また、ネットワークサービスのWebアプリケーション全体に読み取り/書き込み権限を付与するだけでもかまいませんか?
winforms - Winformsレポートでのサブレポートデータのフィルタリング
Winforms Reporting Services(RDLC)を使用して、サブレポートを含むレポートを生成しています。私の問題は、サブレポートが親IDでフィルタリングされていないことです。
データモデルの簡単な例は、従業員を含む部門です。
レポートでは、すべての部門を表示し、その部門に属する従業員を表示するサブレポートを作成します。
2つのDataTable(DepartmentとEmployee)を使用してデータセットを作成しました。DepartmentId列を使用して、2つのテーブル間に関係を作成しました。
フォームで、適切な塗りつぶしコマンドを使用して各テーブルに入力します。最初にDepartmentテーブルに入力し、次にEmployeeテーブルに入力します。つまり、[Deparmentから*]を選択し、[Employee]から*を選択します。
次に、実際のRDLCについて説明します。Departmentrdlcは、Deparmentデータソースを使用して、Departmentに関する情報を表示します。このrdlcにサブレポートコントロールをドロップし、プロパティを設定しました。Field!DepartmentIdであるサブレポートにReportPropertyを渡します。
Employee rdlcで、Employeeデータソースを追加し、Property!DepartmentIdにフィルターを作成しました。
レポートを実行すると、各部門を循環できますが、サブレポートが表示されません。従業員データソースからフィルターを削除すると、サブレポートにはすべての従業員が表示されますが表示されます。
フォーム自体で、サブプロセスのevertを処理し、レポートにEmployeeデータソースを追加しています。
サブレポートデータを親にリンクする方法について何かアイデアはありますか?
.net - InstallShield2009MSIから.NETサービスをインストールする際の問題-カスタムアクションで1つのMSIHANDLEが閉じられなかった
InstallShield 2009を使用して、継承したコードベースのMSIを生成しています。このコードは、VB6と.NET 2.0コード(C#およびC ++)で構成されています。私はWindowsXPSP2を開発してインストールしています。
前のチームから提供されたMSIからリバースエンジニアリングして、 InstallShieldプロジェクト(これを呼び出します)を作成しました。それらの構成は同じになりました。"MyClient.ISM"
次に、 MSIを生成するようにInstallShieldを構成しました。これはエラーなしで構築されました。ただし、MSIを実行しようとすると、2つで失敗します
「エラー1001InstallUtilLib.dll:不明なエラー」
ダイアログを表示し、行った変更を正常にバックアウトします。次にMyClient.MSI
、msiexecコマンドを使用して実行しました。例えば
問題は。が原因のよう2769 error
です。これに起因するログファイルのエラーの場所は次のとおりです。
このカスタムアクションは、.NETサービスをインストールしようとしていました。そこで、InstallShieldに移動して、すべてのカスタムアクション(インストール、アンインストール、コミット、ロールバック、および関連するSetProperty)を削除し、ビルドして再度インストールしました。これは機能しましたが、サービスはインストールされなくなりました。動作するInstallShieldメソッドを使用してこれらの.NETサービスをインストールする必要があります。
service - .NETアプリケーションでSMSメッセージを受信する
SMSメッセージをリッスンする.NETアプリケーションを作成し、それに反応する必要があります。
アプリケーションとSMSの送信者の間のインターフェイスにSMSゲートウェイが必要だと思います。
どうすればこれを実装できますか。リスニングプログラムはWebサービスか何か他のものである必要がありますか?
あなたの考えを教えてください。
ありがとう、チャク
wcf - WCF RequestChannel; 本当に何が起こりますか?
人がIRequestChannelのOpenメソッドを呼び出すと、実際に何が起こりますか?たとえば、次のコードがある場合:
一部のサービスでは「誤検知」が発生し、他のサービスでは正確な障害が発生するようです。チャネルが開いていることを何らかの方法で確認しなかった場合、常に誤検知が発生すると思います。
改善に関する提案はありますか?これは診断テストのためのサービスの実行可能性をテストするためだけなので、メッセージの送信は避けたいのですが、必要に応じて送信できます。
構成ファイルから、誤検知を返すチャネルが次のbehaviorConfigurationを使用していることに気付きました。
ストリーミングされた動作の構成が、ホストとサービスが利用できない場合でもIRequestChannelが開いていることを示す原因になるのでしょうか。
wcf - Silverlight対応のWCFサービスのget-onlyプロパティをどのように構成しますか
エラーがどこで発生しているのか(Silverlight、wcf、その他...)はわかりませんが、Silverlightから呼び出されているWCFサービスがあります。このメソッドは、セッターを持たないプロパティを持つクラスを返します。これはエラーをスローします。プロパティにセッターを追加しても、エラーは発生しません。
このエラーは、通常の侵入不可能で役に立たないSilverlightエラーメッセージですが...
エラーをスローします...
ただし、次のように変更します。
エラーはありません。
通常のISomeService.svcおよびSomeService.svcクラス、クライアント非同期を呼び出すSilverlightで更新された参照などが含まれます。
プロパティ(get-onlyまたはprivate-setプロパティを許可するための「DataMember」以外の属性)を構成して、ネットワークを介して渡す正しい方法は何ですか?
java - 既存の Java アプリケーションを SYS V サービス (デーモン) に変換する方法
私はJavaアプリケーションを持っています。それを起動するために使用します
java -jar myapp.jar
停止するには、CTRL + C を使用します。
次に、そのアプリケーションを開始できるものに変換する必要があります。
/etc/init.d/myapp スタート
そして、私はやめることができます:
/etc/init.d/myapp停止
問題は、プロセスの PID を保存することです。これを行うためのレシピをどこかで見たと思いますが、場所を覚えておらず、見つけることができません。
Java Server Wrapperというプロジェクトがあるのを見ましたが、メモリ使用量を制限しない無料のものを探しています。そして、この作業は 1 つの bash スクリプトで実行できると思います。