我必须通过FTP上传文件到ftp://ftp.remoteServer.com
我在remoteServer上的根目录包含一个"上传"和一个"下载"文件夹.我需要将我的文件放在"上传"目录中.但登录时,服务器会自动将我放入"下载"文件夹中.
我试过这样做:
string serverTarget = "ftp://ftp.remoteServer.com/";
serverTarget += "../upload/myfile.txt";
Uri target = new Uri(serverTarget);
FTPWebRequest ftp = (FTPWebRequest)FtpWebRequest.Create(target);
using(Stream requestStream = ftp.GetRequestStream()) {
// Do upload here
}
Run Code Online (Sandbox Code Playgroud)
此代码失败:(550)文件不可用(例如,找不到文件,没有访问权限)我调试了代码,并target.AbsoluteUri返回ftp://ftp.remoteServer.com/upload而不是ftp://ftp.remoteServer.com /../upload (缺少..)
如果我在浏览器中放入ftp://ftp.remoteServer.com/../upload,我可以登录并验证这是我要放置文件的正确位置.
如何让FTPWebRequest转到正确的位置?
我在使用Microsoft Windows Server 2003企业版的应用程序服务器上同时运行Java和.net应用程序。这些正在迁移到另一台应用程序服务器Windows 2008 64位计算机上。
所有应用程序都在命名实例上连接到相同的SQL Server 2005数据库。
到目前为止,我已经尝试将应用程序完全按原样移动,而无需更改配置文件,将其从旧框移动到新框。
在新的应用程序服务器上,java和.net应用程序均未连接到数据库(命名实例)。
JDBC错误消息:“与命名实例的连接已失败。错误:java.net.SocketTimeoutException:接收超时。”
.net错误消息:“与SQL Server建立连接时发生了与网络相关或特定于实例的错误。找不到或无法访问服务器。”
如果将数据库配置更改为不在命名实例上的数据库配置,它将在新的应用程序服务器上运行。
数据库已正确设置,因为我们能够在旧的应用服务器上进行连接。我可以从新的应用程序服务器ping数据库服务器。
是否有任何原因在新的应用服务器上无法正常工作?
java连接字符串:“ jdbc:microsoft:sqlserver:// [dbservername]; SelectMethod = Cursor; instanceName = [dbinstance]”
.net连接字符串:“服务器= [dbservername] \ [dbinstance];数据库= Risk_DB; Uid = [用户]; Pwd = [pwd];”
更新 根据答案中的建议,我得到了实例端口号。我还安装了SQL Server Management Studio,因此可以消除我的应用程序的问题。从Management Studio,如果我使用[服务器名称] [实例名称],则会收到消息“在建立与SQL Server的连接时出现与网络相关或特定于实例的错误...”,但是当我使用[服务器名称]时可以使用,[港口]。不知道是否有任何解决方法?
更新#2将问题升级到基础架构/服务器/网络团队。他们禁用了新应用服务器上的Windows防火墙。presto,现在我可以连接到Management Studio中的[dbservername] \ [dbinstance],并且所有应用程序都可以使用现有配置文件运行。