以前より動作しているアプリ(C#,社内開発)を最近購入したパソコンで動かすとタイムアウトになり画像が転送できません。
従来のパソコン(Windows10 winver:1809)では、問題なく動作し、最近購入したパソコン(Windows10 winver:1903)ではタイムアウトになります。
このアプリは、SQLでデータを転記後画像ファイルを転記しています。
転記先は、外部のレンタルサーバーです(カゴヤジャパン)。
Windows Defender も疑い「https://www.pasoble.jp/windows/10/08885.html」で「改ざん防止」を止めてみたのですが変わりませんでした。最新でないウインドウズで動作しているのでコードの問題よりセキュリティ?とも思いますが、あと何が考えられるか教えてください。
開発環境 VS2010 C# Windows10
C#
1 public class UploadImages 2 { 3 public string id, // 弊社のID 4 path, // 対象イメージのパス 5 kind, // 対象イメージの委託元 6 cutLine, // 切り取りサイズ 7 tempPath, // 元のファイルから必要な部分だけ抜き出し画像ファイルを再作成するパス 8 bikou; // 備考欄 9 public UploadImages(string _id, string _path, string _kind, string _cutLine, string _tempPath, string _bikou) 10 { 11 this.id = _id; 12 this.path = _path; 13 this.kind = _kind; 14 this.cutLine = _cutLine; 15 this.tempPath = _tempPath; 16 this.bikou = _bikou; 17 } 18 } 19 20 21 abc.cs 22 // アップロード 23 Ftp ftp = new Ftp(); 24 ftp.adr = Form1._formInstatns.FtpServer; 25 ftp.usr = Form1._formInstatns.FtpUser; 26 ftp.pwl = Form1._formInstatns.FtpPassword; 27 28 foreach (var txt in uploadFiles) 29 { 30 if (txt.tempPath.Length > 0) 31 { 32 // 依頼イメージ転送 33 ftp.FtpUpload(txt); 34 : 35 } 36 } 37 38Ftp.cs 39 /// <summary> 40 /// アップロード(JPG) 41 /// </summary> 42 /// <param name="upFile"></param> 43 public void FtpUpload(Byouri.ReportWebForm.UploadImages upFile) 44 { 45 // Jpg ファイル名を抽出してアップする 46 int pos = upFile.tempPath.LastIndexOf('\'); 47 string mei = upFile.tempPath.Substring(pos + 1); 48 49 if (!FtpOpen(mei)) 50 return; 51 52 try 53 { 54 // MethodにWebRequestMethods.Ftp.UploadFile("STOR")を設定 55 ftpReq.Method = System.Net.WebRequestMethods.Ftp.UploadFile; 56 // 要求の完了後に接続を閉じる 57 ftpReq.KeepAlive = true; 58 // ASCIIモードで転送する 59 ftpReq.UseBinary = false; 60 // PASVモードを無効にする 61 ftpReq.UsePassive = false; 62 63 //System.Net.WebRequest.DefaultWebProxy = null; 64 ftpReq.Proxy = null; 65 ftpRes = (System.Net.FtpWebResponse)ftpReq.GetResponse(); 66 67 //ファイルをアップロードするためのStreamを取得 68 System.IO.Stream reqStrm = ftpReq.GetRequestStream(); 69 70 //アップロードするファイルを開く 71 System.IO.FileStream fs = new System.IO.FileStream(upFile.tempPath, System.IO.FileMode.Open, System.IO.FileAccess.Read); 72 73 //アップロードStreamに書き込む 74 byte[] buffer = new byte[1024]; 75 while (true) 76 { 77 int readSize = fs.Read(buffer, 0, buffer.Length); 78 if (readSize == 0) 79 break; 80 reqStrm.Write(buffer, 0, readSize); 81 } 82 fs.Close(); 83 reqStrm.Close(); 84 85 //FtpClose(); 86 } 87 catch (Exception ex) 88 { 89 MessageBox.Show(ex.Message); 90 }
尋ねる前にまずログをとってどこでタイムアウトになっているか特定してください。

回答2件
あなたの回答
tips
プレビュー