使用 PowerShell 连接到 Azure FTP 时出现错误 501,但在 C# 中有效
Error 501 when connecting to Azure FTP with PowerShell but works in C#
我尝试在 PowerShell 5.1 中使用 WebClient
将一些文件上传或下载到 Azure AppService 托管网站。我从 Azure 中我的应用程序的 PublishProfile 获得了 FTP 凭证和 FTP URL 并使用下面的代码来完成任务,
$username = "$somename"
$password = "somepassword"
$webclient = New-Object -TypeName System.Net.WebClient
$webclient.Credentials = New-Object
System.Net.NetworkCredential($username, $password)
$localfilename = "Temp.txt"
$destUrl = "ftp://waws-someaddress.ftp.azurewebsites.windows.net/site/wwwroot/PictureReview/temp.txt"
$uri = New-Object System.Uri($destUrl)
#Write-Host $uri
$webclient.UploadFile($uri, $localfilename)
$webClient.Dispose()
然而,正如我所尝试的,无论何时使用 UploadFile()
或 DownloadFile()
,它总是给我
Exception calling "UploadFile" with "2" argument(s): "The remote server returned an error: (501) Syntax error in parameters or arguments."
The remote server returned an error: (501) Syntax error in parameters or arguments.
我尝试了另一个 public 测试 FTP 服务器 URL,比如 ftp.dlptest.com
而不是 Azure FTP URL,而且效果很好出色地。有没有人遇到过这个问题?这是 Azure 应用服务的问题吗?
我也在 Azure FTP URL 的 C# 代码中尝试了相同的方法,它也很有效。
应楼主要求,C#代码如下:
WebClient client = new WebClient();
client.Credentials = new NetworkCredential("$somename", "somepassword");
client.UploadFile("ftp://waws-someaddress.ftp.azurewebsites.windows.net/site/wwwroot/PictureReview/temp.txt", @"C:\users\blahblah\Desktop\temp.txt");
您的 C# 代码显示您已 $
登录您的用户名。
$
符号在双引号 PowerShell 字符串中具有特殊含义。要使用文字 $
符号,您需要使用反引号将其转义:
$username = "`$somename"
或使用单引号:
$username = '$somename'
我尝试在 PowerShell 5.1 中使用 WebClient
将一些文件上传或下载到 Azure AppService 托管网站。我从 Azure 中我的应用程序的 PublishProfile 获得了 FTP 凭证和 FTP URL 并使用下面的代码来完成任务,
$username = "$somename"
$password = "somepassword"
$webclient = New-Object -TypeName System.Net.WebClient
$webclient.Credentials = New-Object
System.Net.NetworkCredential($username, $password)
$localfilename = "Temp.txt"
$destUrl = "ftp://waws-someaddress.ftp.azurewebsites.windows.net/site/wwwroot/PictureReview/temp.txt"
$uri = New-Object System.Uri($destUrl)
#Write-Host $uri
$webclient.UploadFile($uri, $localfilename)
$webClient.Dispose()
然而,正如我所尝试的,无论何时使用 UploadFile()
或 DownloadFile()
,它总是给我
Exception calling "UploadFile" with "2" argument(s): "The remote server returned an error: (501) Syntax error in parameters or arguments." The remote server returned an error: (501) Syntax error in parameters or arguments.
我尝试了另一个 public 测试 FTP 服务器 URL,比如 ftp.dlptest.com
而不是 Azure FTP URL,而且效果很好出色地。有没有人遇到过这个问题?这是 Azure 应用服务的问题吗?
我也在 Azure FTP URL 的 C# 代码中尝试了相同的方法,它也很有效。
应楼主要求,C#代码如下:
WebClient client = new WebClient();
client.Credentials = new NetworkCredential("$somename", "somepassword");
client.UploadFile("ftp://waws-someaddress.ftp.azurewebsites.windows.net/site/wwwroot/PictureReview/temp.txt", @"C:\users\blahblah\Desktop\temp.txt");
您的 C# 代码显示您已 $
登录您的用户名。
$
符号在双引号 PowerShell 字符串中具有特殊含义。要使用文字 $
符号,您需要使用反引号将其转义:
$username = "`$somename"
或使用单引号:
$username = '$somename'