小编Los*_*ode的帖子

C#绝对URI从URL中删除".."

我必须通过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转到正确的位置?

c# ftp urlencode url-encoding

7
推荐指数
1
解决办法
2472
查看次数

从Windows 64位连接到SQL Server命名实例

我在使用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],并且所有应用程序都可以使用现有配置文件运行。

sql-server networking firewall named-instance

3
推荐指数
1
解决办法
1万
查看次数