私たちはC#で開発されたWindows Formsアプリケーションを当社で実行しています。C#Windows Formsアプリケーションは、マップされたネットワークドライブから遅く実行されます
たとえば、C:ドライブのローカルマシンからアプリケーションを実行すると、アプリケーションが読み込まれて高速に実行されます。それはデータベースベースです。つまり、MSSQLサーバーに対して多くのクエリを実行し、ローカルドライブから実行している間にすべてのクエリを1秒未満で実行します。
マップされたネットワークドライブ(UNCパス、M:マップされたドライブではない)から同じアプリケーションを実行すると、読み込みは高速ですが、クエリの実行に時間がかかり、結果をほとんど見ることができません。
ClickOnceは私たちのためのオプションではありません(ここでは議論の対象とならないため)、同じマップされたM:ドライブから高速に実行されるいくつかの他社製アプリケーションがあります。
私はいくつかの研究をした、と私は見つけることができる最も近い質問はこの1つである: http://stackoverflow.duapp.com/questions/2554716/my-c-net-application-is-running-slower-when-the-exe-is-located-on-the-network
私はアプリケーションを右クリックすると添付セカンダリストリームがありませんと言われます利用可能な「ブロック解除」オプションは、ありませんそのファイルは "信頼できる"ものです。
また、私は=「true」を.configファイルで/ >有効< loadFromRemoteSourcesを追加しようとしたが、それはこれまでのところ、アプリケーションのパフォーマンスには変化が発生することはありません。
アプリケーションに署名はなく、アプリケーションのデバッグバージョンとリリースバージョンの両方で遅くなります。
私たちは間違って何をしていますか?
PS:私はまだ、作業に時間がかかる正確なコマンドを特定しようとしていますが、これまでのところ運がありません。
EDIT:新しい情報を追加しています。問題はネットワーク自体ではなく、アプリケーションがバックグラウンドタスクを実行していて、ネットワークから実行されているために失敗したということです。この失敗はtry-catchブロックの周りに巻き込まれず、バックグラウンドタスクが正常に戻るのを防ぎ、アプリケーションの応答に大きな遅延をもたらしました。
つまり、Windowsの不具合ではなく開発バグです。答えをありがとう、私はこの質問を閉じるために投票します。
本当の問題は質問に関連するものではなく、アプリケーション内のバグの副作用であるため、この質問を議論の対象外としています。この質問は役に立たないので、できれば削除するよう投票します。 – Machado