0

Android および ios デバイスから asmx Web サービスに画像ファイルをアップロードしようとしていますが、以下のリストのエラーが発生しています。

Android の場合: サーバーでの FileNotFoundException FileTransfer.upload でのエラー FileTransfer.execute でのエラー IOException: サーバーからエラーを受け取りました。"http_status":500、"コード":1

iOS の場合: サーバーでの FileNotFoundException FileTransfer.upload でのエラー FileTransfer.execute でのエラー IOException: サーバーからエラーを受け取りました。"http_status":500、"コード":3

開発に Icenium を使用しており、ft.upload() メソッドの service_url パラメータが機能しています。ブラウザで Web サービスを呼び出すことができますが、プロジェクトで使用しようとすると同じエラーが発生します。

以下の IIS ログ:

ソフトウェア: Microsoft インターネット インフォメーション サービス 7.5

バージョン: 1.0

日付: 2013-02-22 11:00:07

フィールド: 日時 s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status time-taken

2013-02-22 11:00:07 192.168.1.103 POST /ExpenseService.asmx/UploadFile - 40201 - 78.189.173.183 Camera%20Sample%20Official/1.0+CFNetwork/609+Darwin/13.0.0 500 0 0 287 2013-02-22 11:01:28 192.168.1.103 POST /ExpenseService.asmx/UploadFile - 40201 - 78.189.173.183 Camera%20Sample%20Official/1.0+CFNetwork/609+Darwin/13.0.0 500 0 0 144

私のコルドババージョン2.2.0。私が間違っていたことはありますか?

ASMX サービス:

#region FileUpload
    [WebMethod]
    //[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
    public string UploadFile()
    {
        try
        {
            File.WriteAllText(@"d:\test.txt", "hede");
            HttpPostedFile file = HttpContext.Current.Request.Files[0];
            if (file == null)
                return null;
            string targetFilePath = @"d:\" + file.FileName;
            file.SaveAs(targetFilePath);
            return file.FileName.ToString();
        }
        catch (Exception ex)
        {
            File.WriteAllText(@"d:\uploader.txt", ex.Message.ToString());
            return null;
        }

    }
    #endregion

クライアント側:

var options = new FileUploadOptions(); 
options.chunkedMode  = false;
options.fileKey = "ficheFile";
console.log('imageFileName: ' + imageFileName);    
options.fileName = imageFileName; 
options.mimeType="image/jpeg";
console.log('imageSrc: ' + imageSrc);

var ft = new FileTransfer(); 
ft.upload(imageSrc, encodeURI("http://mydomain:40201/ExpenseService.asmx/UploadFile"), win, fail, options); 

これが私のadb logcatです:

E/FileTransfer(11472): {"target":"http:\/\/mydomain:40201\/ExpenseService.asmx\/SaveFile","source":"file:\/\/\/mnt
\/sdcard\/Android\/data\/com.telerik.Camera_Sample_Official\/cache\/1361950930301.jpg","http_status":500,"code":1}
E/FileTransfer(11472): java.io.FileNotFoundException: http://78.189.173.183:40201/ExpenseService.asmx/SaveFile
E/FileTransfer(11472):  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getInputStream(H
ttpURLConnectionImpl.java:521)
E/FileTransfer(11472):  at org.apache.cordova.FileTransfer.getInputStream(FileTransfer.java:480)
E/FileTransfer(11472):  at org.apache.cordova.FileTransfer.access$400(FileTransfer.java:62)
E/FileTransfer(11472):  at org.apache.cordova.FileTransfer$1.run(FileTransfer.java:402)
E/FileTransfer(11472):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
E/FileTransfer(11472):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
E/FileTransfer(11472):  at java.lang.Thread.run(Thread.java:1019)
D/CordovaLog(11472): Error Code: 1
D/CordovaLog(11472): : Line 1153648589 : Error Code: 1
I/Web Console(11472): Error Code: 1 at :1153648589

敬具。

4

1 に答える 1

0

httpstaus 500 はサーバー エラーです。UploadFile 関数にバグがあるようです。

サービスをテストするためのプロセスに w3wp.exe を添付することができます

于 2013-02-22T14:35:50.903 に答える