• 締切済み

ASPからの実行とEXEからの実行との結果が違う その2

いつもお世話になっています。 またわからないことが発生しました。 VB5.0の修正開発でActiveXのDLLを修正しました。 当初、ローカルパスから、該当ディレクトリにデータを配布する処理から、INIファイルを利用して、ネットワークパス(隠し共有)にディレクトリ変更する・・・開発メンテです。 (概要) ファイル名:Copy.dll ネットワークパス:\\defaultPC\\c$\test\ まずテスト用として適当なEXEファイルを作成し、DLL内部のクラスをCallしたところ、問題なく正常にネットワークにパスにアクセスしデータも反映されました。 しかし、ASPから実行するとネットワークにアクセスする所でこけてしまいます。エラーを分析したところ・・・ Err.Number→52 Err.Description→ファイル名または番号が不正です。と表示されてしまいます。 自分の解釈だと、ASP側でDLLが正常に終了していないまま、復帰値を取得しているとしか思えません。 このような場合どのように回避させればよいのでしょうか? 最初の回答で権限の問題とご指摘あったのですが、もし、そうならば、詳しい設定方法も併せて知りたいです。 よろしくお願いします。

みんなの回答

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.5

TCP/IPを使っているのが前提ですが、 \\192.168.10.10\\c$\test のように、IPアドレスで指定してもだめですか?

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.4

\\defaultPC\\c$\test\ の、最後の\を消してください。

soushi_ni
質問者

補足

ご指摘ありがとうございます。 補足が不足していました。 API使用時にて既に下記の通りに修正しております。 \\defaultPC\c$\test 現況はまだ解決しておりません。。。

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.3

冷静に考えると、ATコマンドでnet useコマンドを使って接続しても無意味ですね。 ATコマンドを実行しているユーザで接続が行われるのであって、ASPを動かしているユーザで接続するわけではないからです。

soushi_ni
質問者

補足

現在WNetAPI(WNetAddConnection)を使用してテストを行っています。ASPからだとうまくいきません。 復帰値が67と帰ってきてしまいます。 こうなると、ASP側の修正になるのでしょうか

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

>net useコマンドはATコマンドとかになりますか? さぁ?試したことはないなので。 パラメータなどは、net use /help で調べてくださいね。 >>WNet系のAPIを使うか >この場合の詳細サイトをご存知でした教えて頂けないでしょうか? 私は知りません。ただし、"WNet"と"API"で間違いなくGoogleやgooなどの検索エンジンでで引っかかりますので、自分にあうところを探してください。

参考URL:
http://www.google.com/search?num=100&hl=ja&ie=UTF8&oe=UTF8&q=WNet+API&lr=lang_ja
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

結果が違うのは、処理を行うユーザーが違うためです。 自分で実行ファイルを起動するときはログインしているユーザーの権限で実行されますが、ASPではIISで指定しているユーザーで実行されます。 そのため、ネットワークドライブにあるファイルは、先にそのマシンに対して接続しておく必要があります。 で、接続の仕方としては、WNet系のAPIを使うか、net useコマンドで接続するかということになると思います。

soushi_ni
質問者

補足

net useコマンドはATコマンドとかになりますか? >WNet系のAPIを使うか この場合の詳細サイトをご存知でした教えて頂けないでしょうか? たびたびすみません。宜しくお願いします。

関連するQ&A

  • ASPからの実行とEXEからの実行との結果が違う

    いつもお世話になっています。 またわからないことが発生しました。 VB5.0の修正開発でActiveXのDLLを修正しました。 当初、ローカルパスから、該当ディレクトリにデータを配布する処理から、INIファイルを利用して、ネットワークパス(隠し共有)にディレクトリ変更する・・・開発メンテです。 (概要) ファイル名:Copy.dll ネットワークパス:\\defaultPC\\c$\test\ まずテスト用として適当なEXEファイルを作成し、DLL内部のクラスをCallしたところ、問題なく正常にネットワークにパスにアクセスしデータも反映されました。 しかし、ASPから実行するとネットワークにアクセスする所でこけてしまいます。エラーを分析したところ・・・ Err.Number→52 Err.Description→ファイル名または番号が不正です。と表示されてしまいます。 自分の解釈だと、ASP側でDLLが正常に終了していないまま、復帰値を取得しているとしか思えません。 このような場合どのように回避させればよいのでしょうか?

  • ASPのテスト開発環境について

    今以下のローカル環境でASPの開発テストを 行ってからアップロードしたいのですが、可 能でしょうか?また、テスト方法を教えてく ださい。お願いいたします。 WindowsXP Professional 使用DB Access97MDB 開発は .Netではありません。 コントロールパネルのODBCは設定いたしました。 IISでの設定とかは必要ないのでしょうか? C:\ASP_Test\index.asp などのファイルをローカルに置きました。 (index.aspはAccessMDBにアクセスして   情報表示するだけです。) 起動方法は http://localhost/ASP_Test/index.asp で起動しないのですが、何か設定で必要なのでしょうか? また起動方法に誤りがあるのでしょうか? 宜しくお願いいたします。

  • ASP(vbs)でのBCPの実行について

    開発言語:ASP(vbs) 使用DB:SQL Server2005(海外版) クライアントPC:WinXP(USA版OS) APサーバー:WinServer2003(日本にあり、USA版OS)[bcp.exeを動作させる為だけにSQLServerを入れています] DBサーバー:WinServer2003(海外サーバー) クライアントからCSVをAPサーバーにUpLoadし、DBサーバーにインポートしたいのですが出来ません。 インポート方法として、BCPとBulkが使用出来る事を調べたのですが Bulkでは、DBServerにCSVファイルがないとインポート出来ないようで DBサーバーにファイルを置いてはいけない仕様となっている為使用出来ません。 なので、bcpを利用しようと思い現在開発を進めていまた。 コマンドプロンプト上ではBCPコマンドは動作するようになったのですが ASP上で動作確認しようとしたところ、正常終了(エラーは帰ってこない)はするのですが 実際にデータがインポートされている様子がありません。 ●basp21を使用した場合(basp21はインストール済) 【ソース】 Set bobj = Server.CreateObject("basp21") rc = bobj.Execute("bcp DB名 IN C:\a.csv -t , -S サーバー名 -U ユーザー名 -P パスワード -E -F 2 -c",1,stdout) select case rc case 0 : response.write("正常終了") case -1 : response.write("コマンドエラー") case -2 : response.write("タイムアウト") end select 【表示結果】 >正常終了 と表示されますが、実際指定したテーブルにデータがインポートはされていません。 ●WScriptを使用した場合 【ソース】 Set objShell = Server.CreateObject("WScript.Shell") objShell.Run "bcp DB名 IN C:\a.csv -t , -S サーバー名 -U ユーザー名 -P パスワード -E -F 2 -c" response.write "エラーナンバー:" & Err.Number & "<br>" 【表示結果】 >エラーナンバー:0 上記も同様に、実際指定したテーブルにデータがインポートはされていません。 ●番外:コマンドをバッチ化してASPから実行 【ソース】 Set objShell = Server.CreateObject("WScript.Shell") objShell.Run "C:\a.bat" 【表示結果】 >Microsoft VBScript runtime error '800a0046' >Permission denied >a.asp, line 2 こちらはただ試してみただけなのですが 普通、権限を割り振らないとASPからバッチファイル実行するのは無理ですね。 コマンドプロンプトで同コマンドを実行するときちんとインポートされている事 ASP上で実行するとエラーで帰ってくるならまだしも戻り値が0なので正常終了しているが、結果が伴わない(インポートされていない)事 が、相成って困っています。 最初の2つのコーディングでマズい所があるかどうか また、どこを直せば正常に動くのか、について 申し訳ないですが、どうかご教授お願いします。

  • IIS+ASPで実行可能なサーバと不可能なサーバがある

    現在、IISとASPを使用してアプリケーションを動かしています。 データベースにMDBファイルを使用し、データの 登録・参照・削除をASPで行っています。 都合によりIISサーバを違うPCに移し変えることになりました。 ファイルをコピーして、IISの設定を同じにしましたが、 クライアントからデータの書き込みをすると「ページを表示できません」 と出てしまいます。エラーの理由としてデータの追加を行っている ASPファイルの「(レコードセット).AddNew」の行で 「データベースまたはオブジェクトは読み取り専用なので、更新できません」 ということなのですが、今までのサーバでは動いていたファイルを そのままネットワーク経由でコピーしただけなので 修正方法がわかりませんでした。 IISの設定はあまり詳しくないので、不足している情報が あれば追記いたします。 OSは新PC・旧PCともにWindowsXP Pro(SP1)です。 ご指導よろしくお願いいたします。

  • aspで外部呼出しに対して画像を表示させたいのですが、、

    aspでアクセスカウンタを作成しようと頑張っているのですが、 外部からの呼び出しに対して、画像を返すロジックがわからず困っています。 手元にある書籍には書いてないし、ネットで検索しても、なかなか見つかりません。 例えば同じディレクトリに test.aspとtest.gifがあるとして、 外部のhtmlファイルから、 <IMG src="http://xxxxyyyy.com/test.asp"> とリンクを張られた場合に、とりあえず、test.gifを表示させるための ロジックはどのように書けばよいのでしょうか?

  • EXEまたはDLLの実行方法

    ASPからVBにて作成したEXE or DLLを起動して ファイルダウンロードを実施しようと思っております。 ASP初心者の為、その様な事が可能なのかも判断ついておりせん。 もし、可能であれば実装方法を教えて下さい。 VBではSQLServerからデータ抽出してCSV形式の ファイル作成処理を行っております。

  • がんばるASP超初心者です。

    がんばって。ASPで掲示板やデータベースサポートつきのWeb を作ってみよう!と思い立って、なぜか日曜の午後にがんばってます。 ASP初心者のページ http://asp.dataweb.ne.jp/default2.htm で、まず掲示板を作ってみようとして、Personal Web Serverを インストールし、手順どおりにやってみようと C:\Inetpub\wwwroot ディレクトリに test.aspファイルを作ったのですが、 http://127.0.0.1/test.asp では、エラー画面になって表示されません。 何が原因か検討もつかなくて、いきなりつまずいております。 どなたかお助けください。。。お願いします!

  • ASP.NET クライアント→サーバーに移動させる

    お世話になります。 クライアントPCでASP.NETの開発環境をインストールして簡単なテストプログラムを作成しました。 Webサーバーではないのですが、IIS7.0がインストールされていて、簡単なPHPプログラムが動く環境の Windows Server 2008 R2 の inetpub\wwwroot\test のフォルダを作成して(IISは 192.168.0.10とします、IIS関連のプログラムはASP.NETも含め全部インストール済です) 作成した test.aspxファイル、test.vbファイルを入れて ttp://192.168.0.10/test/test.aspx を叩くと 401 - 権限がありません: 資格情報が無効であるため、アクセスが拒否されました。 指定した資格情報を使用して、このディレクトリまたはページを表示するアクセス許可がありません。 とエラーが表示されてしまいます。 PHPの時はクライアントで作成したファイルを同じような形でサーバーのIISフォルダにサブフォルダを作成してファイルを張り付け、クライアントからIEで問題なく稼働してたのに・・・ もしかして、上記2つのファイルでは少ないとか、何か許可を出させる命令を実行するとか、 わたくしが見落としている点などありましたら、何卒ご指摘いただけますようお願いいたします。 開発には Microsoft Visual Web Developer 2010 Express を使用しております。 この環境でサーバーに直接アップロードしてデバックなど実行できるようにできるなど、 そういうご回答でもまったく問題ございませんので、何卒ご教授いただければと存じます。 よろしくお願いいたします。

  • ASP.netよりAdministratorでEXEを実行できません。

    ASP.netよりAdministratorでEXEを実行できません。 ------------------------------ ■環境 Windows2003 Server IIS 6.0 SSL使用 .net Framework 2.0以降 開発言語 VB.net ------------------------------ いつもお世話になっております。 ASP.netでのローカルユーザ管理(パスワードの変更)を行いたいと思い、 以前質問をさせていただいたきました。 http://questionbox.jp.msn.com/qa5886000.html VS2005での開発環境ではうまくいったのですが、Windows2003 Server、IIS 6.0 の環境で実行したところ、ASP.netよりAdministratorでEXEを実行できません でした。 EXEからの戻りコードを調べたところ「-1066598274」が返ってきています。 EXEが実行できていないように思うのですが、原因がわかりません。 解決方法をお教えください。 Sub Exec() Dim strMsg As String = "" Dim strPass = "adminpass" Try Dim pinf As New ProcessStartInfo("C:\WindowsApplication1.exe", "") pinf.UserName = "Administrator" pinf.Password = New SecureString() For Each c As Char In strPass.ToCharArray() pinf.Password.AppendChar(c) Next pinf.UseShellExecute = False Using proc As Process = Process.Start(pinf) Call proc.WaitForExit() Select Case proc.ExitCode Case 0 : strMsg = "正常終了" Case Else : strMsg = "Err:" & proc.ExitCode End Select End Using Catch ex As Exception strMsg = "予期せぬエラー" Finally ClientScript.RegisterStartupScript(Page.GetType(), "s", String.Format("alert('{0}');", strMsg), True) End Try End Sub

  • 外部呼出しされたASPファイルから呼び元に画像を表示させたいのですが、、

    同様の質問を間違えて別カテゴリに書いてしまったので、再度投稿させていただきます。 aspでアクセスカウンタを作成しようと頑張っているのですが、 外部からの呼び出しに対して、画像を返すロジックがわからず困っています。 手元にある書籍には書いてないし、ネットで検索しても、なかなか見つかりません。 例えば同じディレクトリに test.aspとtest.gifがあるとして、 外部のhtmlファイルから、 <IMG src="http://xxxxyyyy.com/test.asp"> とリンクを張られた場合に、とりあえず、test.gifを表示させるための ロジックはどのように書けばよいのでしょうか? どうかよろしくお願いします。

専門家に質問してみよう