Windows サービスとしてアプリケーションを開発しています。サービスは からパスを取得しますapp.config
が、何らかの理由で、取得したパスの一部が実行中に変更され、 に置き換えられC:\Windows\System32
ます。
これは私のapp.configです
[...]
<appSettings>
<add key="Freq_Minutes" value="1" />
<add key="Connectionstring" value="Server=FENIX\SQL2005;Database=amoselprat;Uid=amos;Pwd=mosa;"/>
<add key="AMOSEsdara_Path" value="C:\TEMP\AMOS_ESDARA"/>
<add key="EsdaraAMOS_Path" value="C:\TEMP\ESDARA_AMOS"/>
</appSettings >
[...]
これはキーを取得する関数です
Public Function GetInfo(ByVal Label As String) As String
Dim Value As String
Try
Value = System.Configuration.ConfigurationManager.AppSettings(Label).ToString
Catch ex As Exception
Value = Nothing
End Try
Return Value
End Function
そして、これは問題のあるコードです
Public Sub Components(ByVal AutoNumber As String)
Dim sw As StreamWriter
Dim File As String
File = GetInfo("AMOSEsdara_Path") & "\AMOS_ESDA_COMP_" & Autonumber & ".xml"
Try
EventLog_AMOSEsdara.WriteEntry("AMOSEsdara Interface - Creating components file " & File)
sw = File.CreateText(File)
[...]
Catch Ex As Exception
EventLog_AMOSEsdara.WriteEntry("AMOSEsdara Interface - Error creating file " & File & " Error: " & Ex.Message)
End Try
End Sub
サービス EventLog として実行すると、次のエラーが書き込まれます。
AMOSEsdara Interface - Error creating file AMOS_ESDARA\AMOS_ESDA_COMP_000006.xml Error: Can not find a part of the path 'C:\Windows\system32\AMOS_ESDARA\AMOS_ESDA_COMP_000006.xml'.
サービス アプリケーションの代わりにコンソール アプリケーションに同じコードを使用しようとしましたが、正常に動作しています。取得したパスは正しく、XML ファイルは次の場所に正常に作成されます。C:\TEMP\AMOS_ESDARA
私は何が欠けていますか?前もって感謝します。