none
ClickOnceでファイルアクセスの拒否 RRS feed

  • 質問

  • お世話になります。

    開発:
    Windows7 Ultimate
    Visual Studio 2010 Ultimate
    Visual Basic 2010

    .NET3.51で作成したアプリをClickOnceで配布しています。
    最初に表示するフォームのNew()に以下のコード記述しています。

    Try
          Dim fileName As String = String.Format("{0:yyyy_MM_dd-HH_mm_ss}_MoreSystemRegistry_log.txt", Now)
          Dim sw As New StreamWriter("C:\" + fileName)
          sw.AutoFlush = True                   '自動的にフラッシュされるようにする
    
          Dim tw As TextWriter = TextWriter.Synchronized(sw)
          Dim twtl As New TextWriterTraceListener(tw, "LogFile")
          Trace.Listeners.Add(twtl)
        Catch ex As Exception
          MessageBox.Show(String.Format("ログの起動に失敗しました。{0}", ex.Message))
        End Try
    

    開発環境では問題ないのですが、別のWindows7にClickOnceにて配置して実行するとエラーになります。

    XXXXへのアクセスが拒否されました。(XXXXはファイル名)

    ClickOnceのセキュリティは「完全に信頼するアプリケーション。。。」を選択しています。

    問題点等、お分かりの方は教えてください。
    よろしくお願いいたします。

    2011年6月23日 3:18

回答

  • ClickOnceでなく、普通にビルドしたEXEを実行した場合はどうでしょうか。
    なんとなく実行しているユーザに書き込み権限がないんじゃないかと
    いう気がするのですが。

    あとWindows7だとC:\ドライブの直下にはファイル作れないという話がAnswersにありました。
    http://answers.microsoft.com/ja-jp/windows/forum/windows_7-files/c%E3%83%89%E3%83%A9%E3%82%A4%E3%83%96%E7%9B%B4%E4%B8%8B%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E4%BF%9D%E5%AD%98%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/3b0e375a-9524-4432-a780-96f4c8e6a317


    • 編集済み mars12 2011年6月23日 5:02 誤字修正
    • 回答としてマーク office-future 2011年6月23日 11:19
    2011年6月23日 5:01

すべての返信

  • ClickOnceでなく、普通にビルドしたEXEを実行した場合はどうでしょうか。
    なんとなく実行しているユーザに書き込み権限がないんじゃないかと
    いう気がするのですが。

    あとWindows7だとC:\ドライブの直下にはファイル作れないという話がAnswersにありました。
    http://answers.microsoft.com/ja-jp/windows/forum/windows_7-files/c%E3%83%89%E3%83%A9%E3%82%A4%E3%83%96%E7%9B%B4%E4%B8%8B%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E4%BF%9D%E5%AD%98%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/3b0e375a-9524-4432-a780-96f4c8e6a317


    • 編集済み mars12 2011年6月23日 5:02 誤字修正
    • 回答としてマーク office-future 2011年6月23日 11:19
    2011年6月23日 5:01
  • mars12 さん、返信ありがとうございます。

    返信にあったとおり、C:\ドライブの直下にファイルは作れませんでした。
    フォルダを作成してあげたら、書き出しができるようになりました。

    デバック環境では、直下でも作成できたので引っかかってしましました。

    2011年6月23日 11:19
  • フォルダってどうやって作成していますか?
    なんとなくまともには解決していない気がしないでもないです…

     

    2011年6月23日 13:11
  • それが奇妙なことに、デフォルトでは、C:\直下はディレクトリが作成できるようになっているにもかかわらず、ファイルは作成できないようアクセス権が設定されているんですよ。
    2011年6月23日 13:16
  • それが奇妙なことに、デフォルトでは、C:\直下はディレクトリが作成できるようになっているにもかかわらず、ファイルは作成できないようアクセス権が設定されているんですよ。

    おお?ほんとですね…うーむ…
    2011年6月23日 13:23