Visual Studio Express 2012を使用してVB.NetでWindowsサービスを作成しようとしています。基本的に必要なのは、サービスがN分ごとに事前に定義されたURLにHTTPGET要求を送信することです。ハートビートのようなものなので、サーバーが実行中でオンラインになっていることがわかります。
Windowsサーバーを作成し、プロジェクトを.EXEにビルドしてから、InstallUtilを使用してサービスとしてインストールするところまで行ってきました。これは機能しているようです。私はここのチュートリアルに従います:http://www.dotheweb.net/2009/11/creating-services-with-vb-express/
チュートリアルから、Windowsシステムログに書き込むコードの一部を削除しました(つまり、新しいログが作成されると思います)。これは、私のバージョンのVisualStudioでは何らかの理由で機能しないためです。
次のコードを使用してHTTPリクエストを送信しています。
Dim url As String = "http://someURL.com/test.php"
Dim request As WebRequest = WebRequest.Create(url)
request.Method = "GET"
Dim response As WebResponse = request.GetResponse()
PHPファイルは、アクセスされたときに単に電子メールを送信します。
Visual Studio内からプロジェクトを実行すると、コードは正常に機能します(Windowsサービスプロジェクトをこのように実行しないように通知するメッセージを無視すると、メールが届き始めます)。
ただし、Windowsサービス自体を起動すると、電子メールは送信されませんが、エラーはどこにも表示されません。