0

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

私は何が欠けていますか?前もって感謝します。

4

1 に答える 1