none
システムフォルダでの実行について RRS feed

  • 質問

  • お世話になっております。

    あるプログラムを作成しました。

    それは、特定の情報をソケット通信によってサーバ側に送信するプログラムです。

    動作確認のため、D:\test\(システムフォルダ外) に配置し実行したところ正常に動作しました。

    その後、windowsフォルダにexeを移動したところ、通信部分で正常な動作をしなくなりました。

    システムフォルダは、書き込みの制限が掛っているのは知っていましたが、通信の制御も

    かかっているのですか?

    Windowsファイアーウォールでは例外に登録しています。

    そして、稀に正常に動作しないかとおもえば、正常なデータを送信してきたりするのです。

    その他の、セキュリティーソフトはインストールされていません。

    識者のかた、ご教示ください。

    追記:

    また、管理者権限で実行オプションをつけることによって正常に動作しますが
    これをつけることによる不具合等はありますでしょうか?

    2015年8月21日 5:38

すべての返信

  • そのプログラムが、何かしらワークファイルのようなものや、ログファイルなどを、exeと同じフォルダに書き出していたりということはないでしょうか?

    あるいは、たとえばカレントディレクトリを別のフォルダに設定した状態で起動すると正常に動作するといったことはないでしょうか?
    その場合、カレントディレクトリに何か書き込みがされていたりしないでしょうか?

    2015年8月21日 5:56
  • なちゃさん、ご回答ありがとうございます。

    そのプログラムが、何かしらワークファイルのようなものや、ログファイルなどを、exeと同じフォルダに書き出していたりということはないでしょうか?

    自身のフォルダに出力しているファイルはありません。

    が、特殊フォルダを取得し、そのパスについてFile.Existsや、出力は行っています。

                    SaveFolder = Environment.GetFolderPath(Environment.SpecialFolder.CommonOemLinks,
                        Environment.SpecialFolderOption.Create);
    
    
                    LocalPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData,
                                  Environment.SpecialFolderOption.None);
    
    

    2015年8月21日 6:06