久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

修復(fù) - System.Net.WebException:遠(yuǎn)程服務(wù)器返回錯誤:

Fixing - System.Net.WebException: The remote server returned an error: (500) Syntax error, command unrecognized(修復(fù) - System.Net.WebException:遠(yuǎn)程服務(wù)器返回錯誤:(500)語法錯誤,命令無法識別) - IT屋-程序員軟件開發(fā)技
本文介紹了修復(fù) - System.Net.WebException:遠(yuǎn)程服務(wù)器返回錯誤:(500)語法錯誤,命令無法識別的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

限時送ChatGPT賬號..

我創(chuàng)建了 FTP 代碼來傳輸文件.此代碼工作正常,但有時會導(dǎo)致錯誤 500.確切的錯誤是 -

I created FTP code to transfer files. This code works fine except that it sometimes causes an error 500. The exact error is -

Error: System.Reflection.TargetInvocationException: Exception has 
been thrown by the target of an invocation. 
---> System.Net.WebException: The remote server returned an error: 
(500) Syntax error, command unrecognized.
   at System.Net.FtpWebRequest.CheckError()
   at System.Net.FtpWebRequest.SyncRequestCallback(Object obj)
   at System.Net.CommandStream.Abort(Exception e)
   at System.Net.FtpWebRequest.FinishRequestStage(RequestStage stage)
   at System.Net.FtpWebRequest.GetRequestStream()
   at ST_772dn22cj49ndfddatee.csproj.ScriptMain.Main()
   --- End of inner exception stack trace --- 

我注意到在加載最大文件(即大約 290 KB)時會發(fā)生錯誤.所有其他文件都少于此,我對它們也不例外.我不知道為什么會這樣.誰能告訴我為什么?

I noticed that the error occurs when the biggest file is loaded, ie about 290 KB. All other files are less than this and i get no exception for them. I don't know why this happens. Can someone tell me why ?

順便說一句,如果您發(fā)現(xiàn)我的代碼有一些改進(jìn)空間或邏輯錯誤,請同時提及.我并不是真的在尋找代碼審查,但它是受歡迎的.

As an aside, in case you notice some room for improvement in my code or logical error, then please mention that as well. I am not really looking for code reviews, but its welcome.

public void Main()
{

    Boolean conditions = true;

    if(conditions == true)
    {
    string fileLocation = "my windows directory";
    string fileName = "fileName.extension";

    string ftpFolder = @"/ftpFolder/";
    Boolean ftpMode = true; //passive or active. True = passive 
    string ftpPassword = "password";
    int ftpPort = 21;// the default
    string ftpServerName = "server name";
    string ftpUserName = "user name";

    //Create an object to communicate with the server.
    string ftpRequestString = "ftp://" + ftpServerName + ":" 
    + ftpPort + ftpFolder + fileName; 

    try{

    FtpWebRequest request = 
    (FtpWebRequest)WebRequest.Create(ftpRequestString);
    request.Method = WebRequestMethods.Ftp.UploadFile;

    request.Credentials = new NetworkCredential(ftpUserName, ftpPassword);

    //Set mode
    if(ftpMode == true){
        request.UsePassive = true;
    }

    //Copy the file to the request.

    string filePath = @fileLocation + "\" + fileName;
    StreamReader sourceStream = new StreamReader(filePath);
    byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
    sourceStream.Close();
    request.ContentLength = fileContents.Length;

    Stream requestStream = request.GetRequestStream();
    requestStream.Write(fileContents, 0, fileContents.Length);
    requestStream.Close();

    FtpWebResponse response = (FtpWebResponse)request.GetResponse();

    response.Close();

    }
     catch (WebException ex)
     {
        MessageBox.Show(ex.Message);

     }//try-catch

    }

}//main

推薦答案

在閱讀您的問題時,我懷疑這與將 KeepAlive 設(shè)置為 有關(guān)(或可以通過以下方式糾正)錯誤.看著 SO - 這個問題引用了同樣的問題并指出它:https://stackoverflow.com/a/2071374/1803682

On reading your question I was suspicious this has to do with (or could be corrected by) setting the KeepAlive to false. Looking on SO - this question references the same problem and points to it as well: https://stackoverflow.com/a/2071374/1803682

嘗試設(shè)置:

request.KeepAlive = false;

KeepAlive 設(shè)置為 false 您的連接將是 在每個請求結(jié)束時關(guān)閉.如果您要傳輸大量文件,這可能是一個問題 - 因?yàn)橹匦掳l(fā)送憑據(jù)等需要時間.好處是您以已知/初始狀態(tài)重新創(chuàng)建連接,這應(yīng)該可以解決您的問題(即使它不是根原因).

With KeepAlive set to false your connection will be closed at the end of each request. If you are transmitting a lot of files this could be an issue - as it takes time to resend credentials, etc. The upside is you recreate the connection in a known / initial state which should solve your problem (even if it is not the root cause).

要查看發(fā)生了什么,如果您可以在服務(wù)器上啟用詳細(xì)日志記錄,您應(yīng)該會在看到返回此錯誤之前看到發(fā)出的最后一條命令.這應(yīng)該讓您更好地了解發(fā)生了什么.發(fā)現(xiàn)這個帖子說了很多同樣的話.

To see what is going on, if you can enable detailed logging on your server you should see the last command issued before seeing this error returned. This should give you a better idea of what is up. Found this thread saying much the same thing.

更新:

如果我閱讀了我自己發(fā)布的鏈接的底部,我可能會回答得更好,重新發(fā)出的命令可能是登錄過程的一部分(即 USER 用戶名),這是您可能遇到的問題:

If I had read to the bottom of the link I posted myself I could have answered even better, the command probably being reissued is some part of the login process (i.e. USER username) and this is your likely issue:

憑證可能不再有效的原因是WebRequest 使用在一定時間后到期的租約.如果您沒有明確實(shí)例化租約并定義其超時,F(xiàn)tpWebRequest 似乎使用默認(rèn)超時值.我相信發(fā)生的事情是,當(dāng)租約到期時,F(xiàn)tpWebRequest 將然后嘗試重新登錄.

The reason the creadentials may no longer be valid is that the WebRequest uses a lease that expires after a certain amount of time. If you don't explicitly instantiate the lease and define its timeouts, the FtpWebRequest appears to use default timeout values. I believe what's happening is that when the lease expires the FtpWebRequest will then try to log on again.

看起來 這里 使用正確的搜索:

So looking here with the right search:

導(dǎo)致等待請求的默認(rèn)超時不是無限的,因?yàn)?指定,但實(shí)際上10000 ms.這似乎是一個很大的差異.所以你也可以嘗試設(shè)置:

yields that the default timeout waiting for requests is not infinite as specified but actually 10000 ms. Which seems a pretty big discrepancy. So you can also try setting:

request.Timeout = -1;

看看它是否能糾正你的錯誤.

And see if it corrects your error.

真的不認(rèn)為這可能是您的問題,所以將其移至底部:

Really don't think this could be your issue so moving it to the bottom:

另外 - 檢查您的 request.ReadWriteTimeout 是否適合您看到的較大文件的速度.默認(rèn)值為 5分鐘 這對于 290k 來說會很長,所以我希望這不是你的錯誤的根源.另外 - 如果這是問題,我預(yù)計會出現(xiàn)連接關(guān)閉錯誤.

Also - check that your request.ReadWriteTimeout is appropriate for the speed you see for the larger file. The default is 5 minutes which would be pretty long for 290k, so I expect this is not the source of your error. Also - I would expect a connection closed error if this was the problem.

這篇關(guān)于修復(fù) - System.Net.WebException:遠(yuǎn)程服務(wù)器返回錯誤:(500)語法錯誤,命令無法識別的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

ASP.NET Core authenticating with Azure Active Directory and persisting custom Claims across requests(ASP.NET Core 使用 Azure Active Directory 進(jìn)行身份驗(yàn)證并跨請求保留自定義聲明)
ASP.NET Core 2.0 Web API Azure Ad v2 Token Authorization not working(ASP.NET Core 2.0 Web API Azure Ad v2 令牌授權(quán)不起作用)
ASP Core Azure Active Directory Login use roles(ASP Core Azure Active Directory 登錄使用角色)
How do I get Azure AD OAuth2 Access Token and Refresh token for Daemon or Server to C# ASP.NET Web API(如何獲取守護(hù)進(jìn)程或服務(wù)器到 C# ASP.NET Web API 的 Azure AD OAuth2 訪問令牌和刷新令牌) - IT屋-程序員軟件開發(fā)技
.Net Core 2.0 - Get AAD access token to use with Microsoft Graph(.Net Core 2.0 - 獲取 AAD 訪問令牌以與 Microsoft Graph 一起使用)
Azure KeyVault Active Directory AcquireTokenAsync timeout when called asynchronously(異步調(diào)用時 Azure KeyVault Active Directory AcquireTokenAsync 超時)
主站蜘蛛池模板: 国产精品久久久久久久久久免费看 | 国产精品亚洲一区二区三区在线 | 国产精品视频免费观看 | 视频一二区| 久久精品国产99国产精品 | 色婷婷综合久久久中字幕精品久久 | 精品久久伊人 | 亚洲综合五月天婷婷 | 国产一区二区免费 | 日本国产高清 | 亚洲视频手机在线 | 青青草国产在线观看 | 国产高清视频在线观看 | 东方伊人免费在线观看 | 羞羞视频免费在线观看 | 国产丝袜一区二区三区免费视频 | 欧美精品第一页 | 99久久精品国产一区二区三区 | 一区欧美| 国产伦精品一区二区三区高清 | av毛片在线免费观看 | 欧美在线视频一区二区 | 精品无码三级在线观看视频 | 国产视频中文字幕 | 九九九精品视频 | 亚洲国产一区二区视频 | 99在线免费观看 | 国产在线www | 欧美一区二区二区 | 91网站在线观看视频 | 国产精品有限公司 | 中文字幕1区2区3区 日韩在线视频免费观看 | 亚洲在线 | 亚洲欧美日韩久久 | 毛片一区二区三区 | 亚洲精品一区二区三区免 | 欧美日韩亚洲国产综合 | 亚洲色视频 | 毛片视频免费观看 | 日韩成人在线视频 | 久久久久无码国产精品一区 |