|
分類:[.NET 全般]
開発環境:VB2010 OS:WinXP SP3
処理の概要としましては、上記環境にてWindowsサービスを作成しそのサービス内で、上記環境で作成した Windowsアプリケーションをキックし、Windowsアプリ内でフォルダの存在確認をしております。 現象としましては、Windowsアプリ内でローカルフォルダの存在確認をした場合は、正常にフォルダ有無が取得できて おりますが、ネットワークパスを指定するとフォルダの有無が取得できません。 ※ネットワークドライブ、IP指定、コンピュター名のどれを指定しても取得できません。 別EXEから上記Windowsアプリをキックした場合は、正常にフォルダ有無の取得ができます。 (ネットワークパスのOS:WinXP SP3)
何か原因が考えられるのでしょうか。 下記にソースを記述します。
'↓サービス側↓ Protected Overrides Sub OnStart(ByVal args() As String) ' サービスを開始するコードをここに追加します。このメソッドによって、 ' サービスが正しく実行されるようになります ' ProcessStartInfo の新しいインスタンスを生成する Dim hPsInfo As New System.Diagnostics.ProcessStartInfo()
' 起動するアプリケーションを設定する hPsInfo.FileName = "HamadaService_EXE.exe"
'' コマンドライン引数を設定する 'hPsInfo.Arguments = (i + 1).ToString
' 新しいウィンドウを作成するかどうかを設定する (初期値 False) hPsInfo.CreateNoWindow = False
' シェルを使用するかどうか設定する (初期値 True) hPsInfo.UseShellExecute = True
' 起動できなかった時にエラーダイアログを表示するかどうかを設定する (初期値 False) hPsInfo.ErrorDialog = False
' アプリケーションを起動する時の動詞を設定する hPsInfo.Verb = "Open"
' 起動ディレクトリを設定する hPsInfo.WorkingDirectory = "C:\Development\TEST\HamadaService_EXE\HamadaService_EXE\bin\Debug"
' 起動時のウィンドウの状態を設定する hPsInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal '通常 ' ProcessStartInfo を指定して起動する System.Diagnostics.Process.Start(hPsInfo)
End Sub '↑サービス側↑
'↓Windowsアプリ↓ Private Sub Form1_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown Dim strLogPath As String = Path.Combine(My.Application.Info.DirectoryPath, "LOG") LOG = New OperationLog(strLogPath, "TRUE", 30) If Not Directory.Exists(strLogPath) Then Directory.CreateDirectory(strLogPath) End If Call LOG.Start() Call LOG.ScreenStart(Me.Text)
Dim strDir As String = "\\128.167.89.169\R" 'Dim strDir As String = "\\128.167.89.137\共有" 'Dim strDir As String = "V:\" LOG.Write(1, strDir) If Directory.Exists(strDir) Then 'If Directory.Exists("C:\hamada") Then LOG.Write(0, "ファイルあり") Else LOG.Write(0, "ファイルなし") End If
End Sub '↑Windowsアプリ↑
|