2009-05-28 4 views
3

ディレクトリ(Directory.GetFiles())を一覧表示し、返されたファイルの1つにアクセスするC#アプリケーションがあります。アプリケーションをローカルで実行するとネットワークの場所やローカルの場所に問題がありません。ネットワーク共有から実行すると、共有にアクセスするとセキュリティ例外がスローされます。 http://blogs.msdn.com/shawnfa/archive/2003/06/20/57023.aspx私の.netアプリケーションはローカルマシン上で動作しますが、ネットワーク上の場所から使用すると失敗します。

しかしソリューションは思え...非現実的、私はそれを誤解していない限り:

私はなぜこれが起こっているが分かりました。

2)アセンブリに署名して、それを使用する人には、.NETポリシーを許可するように設定しますか?(ほとんどオプションではありません) (これは、私が言うことのない方針を変更するためにそれを使う人に頼っていますか?) 3)localintranet上のすべてのものを完全に信頼できるようにポリシーを変更してください

私はここに何かがないのですが、それらの選択肢のどれも、スタンドアロンアプリケーションがネットワークにプッシュされるのに最適ではありません。ネットワーク共有からアプリケーションを実行するディレクトリ内のファイルをリストすることは、そのような狂気のフープが機能するようにジャンプする必要はありませんでした。

誰でも私がこのような状況でできることについて考えていますか?これらのスレッドは、あなたが質問にお答えします

+0

重複:http://stackoverflow.com/questions/148879/why-does-my-net-application-crash-when-run -from-a-network-drive –

答えて

4

、私は思う:

この動作はオフに実行されている可能プログラムがデフォルトの.NET Framework 3.5 SP1で変更されましたネットワーク共有。

そして、はい、それは非常に実用的に感じることはありませんが、それについて行うことが多くは残念ながらありません...

+0

重複するリンクは、投票の際にコメントとして投稿する必要があります。 – Noldorin

+0

良い点;それに作用します:) –

3

私は(VS2008などで「公開」)のClickOnceアプリとしてそれを展開します。 ClickOnceはネットワーク共有上に置くことができます。単に.exeの代わりに.applicationを実行するだけです。これは、それを直接実行する上でのセキュリティ上の問題は一切なく、.NET 2.0への取り組みがすべて進められます。

関連する問題