プログラムをウェブサーバーに「チェックイン」させる最良の方法は何ですか?

私は無料で配布されるプログラムを書いており、何人の人が自分のプログラム(ダウンロードしていない)を起動しているのか、どのIPアドレスから知っているのかを知る最善の方法を見つけ出そうとしています。これは、理論的には私のプログラムを企業から立ち上げる人々のおおよその人数を私に与えるだろう(この会社は外部IPを持っていると仮定している)。

プログラムが正常に起動すると、別のスレッドでこのプロセスが開始されます。私は、単に外部アドレスを取得するサーバーをチェックするだけで簡単にしたいと思います。理想的には私のLinuxウェブホストからするのがいいでしょう。オーバーヘッドはほとんどありません。

また、拡大するのもいいでしょう。エラーが発生した場合は、サーバーにエラーをすばやく送信する可能性があります。ありがとうございました!

編集:また、バージョンを送信する能力が望ましいでしょう。

0
どうしてあなたのプログラムがあなたのサーバにHttpRequestを作成させて(ちょうど空のページや何かをロードさせて)、あなたのサーバログを後でチェックするのはなぜですか?
追加された 著者 Dagg Nabbit,
ちょうどそれが同じページをヒットし、クエリ文字列にものを入れてください。 http://mystuff.com/phonehome/?version=12&ip=12.34.56.78&foo=bar ...あなたのサーバーはこれらのすべてをログに記録する必要があります
追加された 著者 Dagg Nabbit,
プログラムが "自宅に電話"しようとしていることをユーザーに伝え、この行動が気に入らなければ "オプトアウト"を選択してください。
追加された 著者 paulsm4,
あなたのサイトを襲った人の数に基づいてカウントを捕まえることができる方法はありません..?ヒットカウントあなたはこれまで何を持っていますか?これはあなたが働いているものですか、これは宿題のようなものですか?
追加された 著者 MethodMan,
私はあなたが他のオプションを訪れるのを助けることができたことをうれしく思っています。私はそれに落ちることはありません。多くのWebアプリケーションは、これらのタイプのメトリックを問題なく実行します。
追加された 著者 MethodMan,
宿題がない。私は自分のC#を教えました。大量のユーザーがこのプログラムを使用する場合は、大幅に拡張したいと考えています。私は本当にまだ何も持っていません。私は私のWebサーバーに当たる小さなスクリプトを書いたが、それは私にバージョンを教えてくれない。
追加された 著者 Jesse Hauf,
@DJKRAZEユーレカ!あなたは私にアイデアをくれました。私はそのアプリの各バージョンごとに違うページを打つことができ、誤って別のページを打つことさえできました。これには何か欠点はありますか?
追加された 著者 Jesse Hauf,
@ paulsm4私は同意すると、明示され、オプトアウト機能が含まれます。私は個人的にはこれを行うプログラムが好きではありませんが、なぜ必要なのか今理解しています。
追加された 著者 Jesse Hauf,

1 答え

Why not simply use "ClickOnce" deployment. SEE: C# Deploying my application - clickonce from web only

そうすれば、プログラムを起動するたびに「電話にかける」だけでなく、利用可能なアップデートがあるかどうかをチェックして最新のバージョンを入手するオプションをユーザに提供することもできます。

必要な情報はすべてサーバーのWebログに記録されます。ユーザーは更新を取得して、更新プログラムのダウンロードを誰が選択するのかを知ることができます。

2
追加された
Jesse:あなたは、「ユーザーは、ネットワーク管理者だけがアプリケーションを更新することができないはずです。このため、アプリケーションには自己更新ロジックが含まれています」あなたのアプリケーションは自分自身を更新すると言っていますか?もしそうなら、ネットワーク管理者の役割は何ですか?
追加された 著者 JonnyBoats,
Jessie:管理者は「リポジトリに最新の実行可能ファイルを置き、更新を承認する」と言います。私たちは本当に同じ概念を話していると信じています。 「リポジトリ」はウェブサイトですが、管理者だけが新しいコピーを置くことができます。すべてのユーザーには、次回プログラムを実行したときに新しいバージョンが利用可能であることが通知されます。それが「ClickOnce」の目的です。
追加された 著者 JonnyBoats,
Jessie:私は多くの人々が自宅で自分のコンピュータを使って仕事をしている会社の仕事をしています。社内のソフトウェアを最新の状態に保つことは私たちの大きな要件です。 ClickOnceは自動化されているので完璧に動作します。新しいバージョンを伝える電子メールを送信する必要はなく、インストールなどを行う人々の住宅にアクセスする必要はありません。新入社員を取得すると、会社のWebサイトにアクセスし、インストールする。セキュリティは、セキュリティ証明書でコードに署名することで簡単に処理され、オプションです。
追加された 著者 JonnyBoats,
Jessie:ClickOnceを使用すると、ユーザーが更新を受け入れるか、選択を許可するかを選択することができます。ユーザーではなく管理者(開発者)がこのオプションを選択します。ユーザーが更新を承認する必要があるオプションを選択すると、プログラムの実行が許可される前に自動的に更新が行われます。このチェックは、ユーザーがプログラムを呼び出して自動的に実行されたときに行われます。あなたはそれが働くために何かをプログラムする必要はありません。
追加された 著者 JonnyBoats,
残念ながら、ClickOnceは私のアプリケーションに適合しません。ユーザーはネットワーク管理者だけがアプリケーションを更新することはできません。このため、アプリケーションには自己更新ロジックが含まれています。しかし、あなたの入力をありがとう、私はClickOnceからの起動統計情報を取得することができるか分からなかった。
追加された 著者 Jesse Hauf,
最新の実行可能ファイルをリポジトリに配置し、更新を承認する。
追加された 著者 Jesse Hauf,
たぶん、私はクリック一回についてさらに研究をする必要があるかもしれない。
追加された 著者 Jesse Hauf,
ただし、ユーザーは何もしないでください。管理者が更新を承認した場合、ユーザーアプリケーションは次回の起動時に自動的に更新されます。 ClickOnceでこれを達成できますか?基本的に私のロジックは、プログラムが自分自身を殺し、自身を削除し、最新の実行可能ファイルをダウンロードし、最新の実行可能ファイルを起動するようにします。ユーザーは、GUIが表示される前に更新されたことを決して知らないでしょう。全プロセスには4秒かかります。
追加された 著者 Jesse Hauf,