ASP.NET webアプリから仮想ドライブを読めない – プログラミング – Home

ASP.NET webアプリから仮想ド...
 
通知
すべてクリア

ASP.NET webアプリから仮想ドライブを読めない


AspGOGO
 AspGOGO
(@AspGOGO)
ゲスト
結合: 21年前
投稿: 2
Topic starter  

他のPCの共有ドライブをX:に割り当てています

fname=X:\\Th.rji;
StreamReader sr=new StreamReaderfname,System.Text.Encoding.Default );
while( sr.Peek() != -1 )
{
  ss=sr.ReadLine ();
}
    sr.Close();

この方法ではTh.rjiをよみとれませんでした

仕方なく BATファイルでいったんD:にコピーしようとしましたが
それもうまくいきません
Process.Start(C:\\copy2d.bat);

ご教授おねがいします


引用解決済
トピックタグ
suzuka
 suzuka
(@suzuka)
ゲスト
結合: 22年前
投稿: 46
 

1.ASP.NET から見て、その X ドライブは
  存在しないと思いますよ。多分。
  こういう「サービス」的動作をするプログラムは特に
  UNC パスを使ってファイルアクセスするべきです。

  \\server\sharedfolder\file.txt

  MS のナレッジベースにはドライブマッピングを
  使用する方法も載っていたと思いますが、
  なるべく UNC パスを使え、とのこと。
  (パフォーマンス的にも)

2.ASP.NET は ASPNET ユーザーアカウントで動作していると思うので
  このユーザーが該当ファイルへのアクセス権を
  所有している必要があります。
  (たしか、ドメインコントローラ上で動作する
   ASP.NET の場合は、さらに別アカウント)

3.C# ですよね?

  X:\\Th.rji → @X:\Th.rji
  C:\\copy2d.bat → @C:\copy2d.bat

  が、おすすめ。


返信引用
APmg
 APmg
(@APmg)
ゲスト
結合: 21年前
投稿: 4
 

共有フォルダにはパスワードが設定してありますが
起動時に自動ログオンする設定となっています
PCは グループ m2group  PC名 MYP4 ですが

>  \\server\sharedfolder\file.txt

@\\MYP4\D:\Th.rji  、
@\\m2group\MYP4\D:\Th.rji
とは違いますよね
なにか具体的な書式例を教えて頂けるとありがたいです

アクセス権は相手側のPCで設定するのでしょうか?

>  X:\\Th.rji → @X:\Th.rji
>  C:\\copy2d.bat → @C:\copy2d.bat
デバッガが時々勝手変換していたので不思議に思っていました;


返信引用
suzuka
 suzuka
(@suzuka)
ゲスト
結合: 22年前
投稿: 46
 

>なにか具体的な書式例を教えて頂けるとありがたいです

ここを見てください。
http://www.atmarkit.co.jp/icd/root/91/5787091.html

>アクセス権は相手側のPCで設定するのでしょうか?

その通りです。
アクセスを拒否するのも、許可するのも
アクセスされる側の権利です。

ジャイアンに「うるさい、いいから見せろ!」と言われて
それがまかり通るようなことは、
コンピュータセキュリティではあってはいけないのです。


返信引用
APmg
 APmg
(@APmg)
ゲスト
結合: 21年前
投稿: 4
 

ありがとうございます

書式は正くなった(と思います)のですが
「ネットワークパスが違います」と拒否されました

アクセス権とネットワークパスは既知であり
OS上のエクスプローラからはアクセスできます

そのアクセス権をC#のプログラムは利用できないのでしょうか?


返信引用
渋木宏明(ひどり)
 渋木宏明(ひどり)
(@渋木宏明(ひどり))
ゲスト
結合: 22年前
投稿: 196
 

>そのアクセス権をC#のプログラムは利用できないのでしょうか?

できなくはありません。

・ASP.NET には「偽装」の機能が用意されているので、それを使う。
・WNetAddConnectionXXX() API で明示的にネットワーク資源に接続する。

などの方法があります。


返信引用
suzuka
 suzuka
(@suzuka)
ゲスト
結合: 22年前
投稿: 46
 

>「ネットワークパスが違います」と拒否されました
まだ間違ってる可能性があるような。
コマンド プロンプト(MS-DOS プロンプト)に
エクスプローラからファイルをD&Dしたときに表示されるものと
同じになってるか確認しましょう。

>OS上のエクスプローラからはアクセスできます
エクスプローラでアクセスするときのアカウントと
ASP.NET が動作するアカウントは別です。


返信引用
AspGOGO
 AspGOGO
(@AspGOGO)
ゲスト
結合: 21年前
投稿: 2
Topic starter  

皆さんご意見ありがとうございます
いろいろと試して見ましたが
ASPはセキュリティのせいか、いろいろと制約がありそうです
あるいはC#とは似て非なるも?
外部PGを起動してコピーしようとしましたが
Process.Start も使えないようです
時間がないので外部PGは独自に起動させ連携させて
とりあえず目的を果たしていますが、

ひとまず参考書もまだ少ないようですのでASPアプリは撤退いたします


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました