• 締切済み

InetのResponseCodeについて

Inetコントロールでdatファイルを送信するプログラムを作成しています。 SENDした時、エラーだとStateChangedサブルーチンでicError(11)が返ってきます。 そこで、ResponseCodeでサーバの応答を見ているのですが・・・ 「12003」と返ってきます。 この数値がさっぱりわかりません。 エラーの原因はサーバにある読み取り専用のファイルと同じファイルを送信するためです。 上書きできないということでエラーが出ていると思います。 この数値についてわかる人はいますか? 説明がわかりにくいかと思いますがよろしくお願いします。

みんなの回答

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

手元のソースによると ' Internet Errors Public Const INTERNET_ERROR_BASE = 12000 Public Const ERROR_INTERNET_OUT_OF_HANDLES = (INTERNET_ERROR_BASE + 1) Public Const ERROR_INTERNET_TIMEOUT = (INTERNET_ERROR_BASE + 2) Public Const ERROR_INTERNET_EXTENDED_ERROR = (INTERNET_ERROR_BASE + 3) ERROR_INTERNET_EXTENDED_ERRORで検索すると http://msdn.microsoft.com/library/en-us/wininet/wininet/wininet_errors.asp ERROR_INTERNET_EXTENDED_ERROR An extended error was returned from the server. This is typically a string or buffer containing a verbose error message. Call InternetGetLastResponseInfo to retrieve the error text. InternetGetLastResponseInfoを呼べば、"xxxに書き込めません。"と言ったメッセージを得るのでは?

関連するQ&A

  • inetコントロールを使用したFTP送信の質問その1

    ローカルにあるファイルを、FTPサーバに送信するプログラムを作成しました。 inetコントロールを使用して、以下のようなプログラムを組みました。 Private sub ftp()  Inet1.Protocol=icFTP  Inet1.Url="ftp://xxx.xxx.xxx.xxx/"  Inet1.UserName="aaaa"  Inet1.Password="bbbb"  Inet1.Execute , "SEND x:\xxx\xxx.txt xxx/xxx.txt" End sub Private sub Inet1_StateChanged(Byval State As Integer) Dim sMsg As String  Select Case State   Case icRequestSent    sMsg = "送信完了"    TCall LogWrite(sMsg) ログをファイルに書く(自作関数)   Case icError    sMsg = Inet1.ResponseCode & " " & Inet1.ResponseInfo    Call LogWrite(sMsg) エラーログをファイルに書く(自作関数)  End Select End Sub ファイルを複数送信するため、「sub ftp()」は複数回呼び出されます。 上記プログラムにCLOSEコマンドとCANCELメソッドを追加して、以下のようにしたほうがよいのでしょうか? CLOSEコマンドとCANCELメソッドの使い方がよくわからず、悩んでいます。 Private sub ftp()  Inet1.Protocol=icFTP  Inet1.Url="ftp://xxx.xxx.xxx.xxx/"  Inet1.UserName="aaaa"  Inet1.Password="bbbb"  Inet1.Execute , "SEND x:\xxx\xxx.txt xxx/xxx.txt"  Inet1.Execute , "CLOSE" End sub Private sub Inet1_StateChanged(Byval State As Integer) Dim sMsg As String  Select Case State   Case icRequestSent    sMsg = "送信完了"    TCall LogWrite(sMsg) ログをファイルに書く(自作関数)   Case icError    sMsg = Inet1.ResponseCode & " " & Inet1.ResponseInfo    Call ErrLogWrite(sMsg) エラーログをファイルに書く(自作関数)    Inet1.Cancel  End Select End Sub

  • Inet で FTP のファイル送信したときのファイル属性

    Inet の FTP でサーバ(UNIX)へファイルを送信すると、 ファイル属性が(rw_r__r__)になります。 FFFTPを使っても同じなので、Inetの問題ではないのですが。 サーバ側の(.cshrc)ファイルでは、umaskは(002)です。 それなら、(rw_rw_r__)になっていいと思うのですが、どなたかどこに設定すればいいのか、ご存知でしたらお教えください。

  • [VB6.0] Inet OpenURLのエラー検出

    VB6.0 InetコントロールでOpenURLを実行した時、404(File Not Found)等のエラーを検出する方法はありますか?

  • InetコントロールHTTPでバイナリファイルをサーバにPUTする。

    Inetコントロールを使用してHTTPでサーバ上にバイナリファイルを送信使用としています。 ExecuteメソッドのPUTを使用してみましたが、サーバ上のファイルサイズが0KBになってしまい、正常に送信されていません。 Dim bData() As Byte Dim intFile As Integer intFile = FreeFile() Open "D:\Temp\aaa.mdb" For Binary Access Read As #intFile ReDim bData(0 To LOF(intFile) - 1) 'ここでは、bDataに読み込めている。 Get #intFile, , bData Close #intFile Inet1.Execute "http://aaserver/files/aaa.mdb", "PUT", bData よろしくお願いします。

  • InetでHTTPのPOST設定方法

    Inetコントロールで、HTTPサーバにPOSTを使用しデータを送信しようと考えているのですが、 いろいろ調べたところ、できるようになりました。 ソースは以下の通りです。 Inet1.Execute "アドレス" _, "POST" _, "msg=あああ" _, "Content-Type: application/x-www-form-urlencoded" 上記のソースでサーバ側でmsgと指定し「あああ」という値を 取得することができました。 しかし、POSTで複数のデータを送ることができません。 例えば値をnameとmsgの二つを送る場合、 "msg=あああ"の部分にどのように記述すればよいのでしょうか? それとも根本的に何か違うのでしょうか? よろしくお願いします。

  • 実行ファイルの動作について

    VB6.0を用いて簡単なアプリケーションを作成しています。 内容は、Inetコントロールを用いてFTPサーバとクライアント間でのファイル転送を行うものです。 プログラムを作成し実行してみたところ、 プロジェクト上では動作しますが、 実行ファイルを作成し、そこで実行させると途中でなぜかハングしてしまいます。 しかし、ファイルの転送には成功しているようです。 転送後のエラー処理に不具合があるのかとも思いますが、 プロジェクト上では問題ありません。 何度もコンパイルし直し、その都度実行ファイルも 作成しなおしています。 なぜでしょうか?? どなたかアドバイスいただけないでしょうか?

  • 「Active X Inet」と「WinInet.dll」の違いについて

    最近「VB6」から「VB 2008 Express Edition」へプログラミング環境を 移行したものです。 VB6では「Active X コントロール:インターネットトランスファ(Inet)の OpenURLメソッド」を使用してHTTPファイルを取得していました。 環境の移行を機に「Windows Internet(WinInet.dll)の機能」を使用して、 VB6の「Inet.OpenURLメソッド」と同様の処理を行おうと考えました。 しかしいざ実行すると、「Inet.OpenURL」だと正常にファイルを取得できるのに、 「WinInet.dll」では異常終了してしまうケースがあります。 私の経験不足から、その原因を突き止めることができません。 よろしくお願いいたします。 ◎HTTPファイルを取得するまでの WinInet.dll で行っている処理[1] (1) InternetOpen ↓ (2) InternetConnect ↓ (3) HttpOpenRequest ↓ (4) HttpSendRequest ↓ (5) HttpQueryInfo ↓ (6) InternetReadFile ◎HTTPファイルを取得するまでの WinInet.dll で行っている処理[2] (1) InternetOpen ↓ (2) InternetOpenUrl ↓ (3) HttpQueryInfo ↓ (4) InternetReadFile ◎ 上記、処理[1]で正常にファイルが取得できるURL 上記、処理[1]では失敗するが処理[2]で正常にファイルが取得できるURL 上記、処理[1]でも処理[2]でも失敗するが、「Inet.OpenURL」で正常に ファイルが取得でいるURLの、3通りのURLが存在します。 この差はどこから生じるのでしょう。 処理[1]、処理[2]で失敗する場合は、 「InternetConnect」、「HttpSendRequest」または、「InternetOpenUrl」で 異常終了し、「エラーコード:2(ERROR_FILE_NOT_FOUND: The system cannot find the file specified.)」が返ってきます。 「ファイルが見つからない」というのは、「該当のURLが存在しない」と いう事なのかもしれませんが、「Inet.OpenURL」で、正常にファイルが 取得できるのは腑に落ちないです。 「Inet.OpenURL」自体も「WinInet.dll」の機能を使って実現している様な事を 聞きました。いったい、何が違うのでしょう。 何方か、私のこの疑問を解消して頂けないでしょうか? よろしくお願いいたします。

  • phpからメールが送れない

    mb_send_mail()[fuction.mb-send-mail]: SMTPserver response:530 5.7.0 これは、()内に[fuction.mb-send-mail]と入力しなさい。応答するサーバー値は530~だから値を530~に変えなさい。と言ってますか?送信エラーの際、これらの文が出ます。

    • ベストアンサー
    • PHP
  • メールの添付ファイル(エクセル)が開けない

    メールに添付されたエクセルファイルを開こうとしたら「○○.xls'にアクセスできません。ファイルは読取専用であるか、または読み取り専用の場所にアクセスしようとしています。または、サーバー上に保存されているドキュメントから応答がありません」といったエラーメッセージが出て開けません。受信メール上は、間違えてショートカットファイルを添付されたファイルっぽくないです。送信者は私がいる建物の外から送信しています。ファイルに保護をかけているためでしょうか?

  • エクセルファイルが壊れた?

    MOの中にあるエクセルファイルを開こうとすると、 「前回開いた時に、重大なエラーが発生しました。このドキュメントを引き続き開きますか?」とのメッセージがで、「はい」と答えると「○○○.xlsにアクセスできません。ファイルは読み取り専用であるか、または読み取り専用の場所にアクセスしようとしています。または、サーバー上に保存されているドキュメントから応答がありません。」とのメッセージ。 開けないので仕方なく、エクセルを閉じると、「プログラム終了。このプログラムは応答していません。」のエラーメッセージが・・・ また、ファイルをコピーして貼り付けようとすると、 「データエラー(巡回冗長検査(CRC)エラーです)」のメッセージが出ます。 このファイルを復旧することはできないのでしょうか? なお、MO内の同じフォルダー内の別のエクセルファイルは全く正常に、開くことができます。

専門家に質問してみよう