Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
山西念星科贸有限公司 2024-09-08 15:09 采纳率: 78.3%
浏览 7
问题最晚将于09月16日00:00点结题

C#连接不上服务器,

问题遇到的现象和发生背景

C#连接不上服务器

用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
public enum ERROR_ID
{
    ERROR_SUCCESS = 0,  // Success 
    ERROR_BUSY = 170,
    ERROR_MORE_DATA = 234,
    ERROR_NO_BROWSER_SERVERS_FOUND = 6118,
    ERROR_INVALID_LEVEL = 124,
    ERROR_ACCESS_DENIED = 5,
    ERROR_INVALID_PASSWORD = 86,
    ERROR_INVALID_PARAMETER = 87,
    ERROR_BAD_DEV_TYPE = 66,
    ERROR_NOT_ENOUGH_MEMORY = 8,
    ERROR_NETWORK_BUSY = 54,
    ERROR_BAD_NETPATH = 53,
    ERROR_NO_NETWORK = 1222,
    ERROR_INVALID_HANDLE_STATE = 1609,
    ERROR_EXTENDED_ERROR = 1208,
    ERROR_DEVICE_ALREADY_REMEMBERED = 1202,
    ERROR_NO_NET_OR_BAD_PATH = 1203,
    ERROR_WRONG_PATH_FORMAT = 67,//远程路径格式错误,一般斜杠弄反了
    ERROR_MULTIPLE_CONNECTION = 1219 //Multiple connections to a server or shared resource by the same user, using more than one user name, are not allowed. Disconnect all previous connections to the server or shared resource and try again.
}

public enum RESOURCE_SCOPE
{
    RESOURCE_CONNECTED = 1,
    RESOURCE_GLOBALNET = 2,
    RESOURCE_REMEMBERED = 3,
    RESOURCE_RECENT = 4,
    RESOURCE_CONTEXT = 5
}

public enum RESOURCE_TYPE
{
    RESOURCETYPE_ANY = 0,
    RESOURCETYPE_DISK = 1,
    RESOURCETYPE_PRINT = 2,
    RESOURCETYPE_RESERVED = 8,
}

public enum RESOURCE_USAGE
{
    RESOURCEUSAGE_CONNECTABLE = 1,
    RESOURCEUSAGE_CONTAINER = 2,
    RESOURCEUSAGE_NOLOCALDEVICE = 4,
    RESOURCEUSAGE_SIBLING = 8,
    RESOURCEUSAGE_ATTACHED = 16,
    RESOURCEUSAGE_ALL = (RESOURCEUSAGE_CONNECTABLE | RESOURCEUSAGE_CONTAINER | RESOURCEUSAGE_ATTACHED),
}

public enum RESOURCE_DISPLAYTYPE
{
    RESOURCEDISPLAYTYPE_GENERIC = 0,
    RESOURCEDISPLAYTYPE_DOMAIN = 1,
    RESOURCEDISPLAYTYPE_SERVER = 2,
    RESOURCEDISPLAYTYPE_SHARE = 3,
    RESOURCEDISPLAYTYPE_FILE = 4,
    RESOURCEDISPLAYTYPE_GROUP = 5,
    RESOURCEDISPLAYTYPE_NETWORK = 6,
    RESOURCEDISPLAYTYPE_ROOT = 7,
    RESOURCEDISPLAYTYPE_SHAREADMIN = 8,
    RESOURCEDISPLAYTYPE_DIRECTORY = 9,
    RESOURCEDISPLAYTYPE_TREE = 10,
    RESOURCEDISPLAYTYPE_NDSCONTAINER = 11
}

[StructLayout(LayoutKind.Sequential)]
public struct NETRESOURCE
{
    public RESOURCE_SCOPE dwScope;
    public RESOURCE_TYPE dwType;
    public RESOURCE_DISPLAYTYPE dwDisplayType;
    public RESOURCE_USAGE dwUsage;

    [MarshalAs(UnmanagedType.LPStr)]
    public string lpLocalName;

    [MarshalAs(UnmanagedType.LPStr)]
    public string lpRemoteName;

    [MarshalAs(UnmanagedType.LPStr)]
    public string lpComment;

    [MarshalAs(UnmanagedType.LPStr)]
    public string lpProvider;
}
public class NetworkConnection
{

    [DllImport("mpr.dll")]
    public static extern int WNetAddConnection2A(NETRESOURCE[] lpNetResource, string lpPassword, string lpUserName, int dwFlags);

    [DllImport("mpr.dll")]
    public static extern int WNetCancelConnection2A(string sharename, int dwFlags, int fForce);


    public static int Connect(string remotePath, string localPath, string username, string password)
    {
        NETRESOURCE[] share_driver = new NETRESOURCE[1];
        share_driver[0].dwScope = RESOURCE_SCOPE.RESOURCE_GLOBALNET;
        share_driver[0].dwType = RESOURCE_TYPE.RESOURCETYPE_DISK;
        share_driver[0].dwDisplayType = RESOURCE_DISPLAYTYPE.RESOURCEDISPLAYTYPE_SHARE;
        share_driver[0].dwUsage = RESOURCE_USAGE.RESOURCEUSAGE_CONNECTABLE;
        share_driver[0].lpLocalName = localPath;
        share_driver[0].lpRemoteName = remotePath;

        Disconnect(localPath);
        int ret = WNetAddConnection2A(share_driver, password, username, 1);

        return ret;
    }

    public static int Disconnect(string localpath)
    {
        return WNetCancelConnection2A(localpath, 1, 1);
    }
}



public static void TestNetWorkConnection()
{
    string localpath = "C:";
    //int status = NetworkConnection.Connect(@"//192.168.0.2/test", localpath, @"test", "test");
    int status = NetworkConnection.Connect("\\\\36.111.170.122\\C58DTTE3PCVXDHM\\ShanXiNianXingData", localpath, "sxty2b_YDN8C16G\\Administrator", "1");----假设密码就是:1,我确定密码没有输错
    if (status == (int)ERROR_ID.ERROR_SUCCESS)
    {
        MessageBox.Show("GET IT!!!");
    }
    else
    {
        MessageBox.Show(((ERROR_ID)status).ToString());------返回:85
    }
    NetworkConnection.Disconnect(localpath);
}
服务器信息

img

img

  • 写回答

15条回答 默认 最新

  • 一轮明月照丘壑 2024-09-08 15:13
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    根据您提供的代码和描述,您遇到的问题是尝试连接远程服务器共享时返回的错误是 ERROR_BAD_NETPATH。这个错误通常表示提供的网络路径不正确或不存在。以下是可能导致这个问题的几个原因和相应的解决方案:

    1. 网络路径格式错误:请检查您的远程路径格式是否正确。确保斜杠方向正确(使用双反斜杠 \\ 或单斜杠 /),并且确保路径中的所有部分(如服务器名、共享名和可能的子目录)都正确无误。
    2. 服务器设置问题:确保远程服务器上的共享已经正确设置并且是可访问的。检查服务器上的防火墙设置,确保没有阻止网络连接。此外,确保服务器上的用户账户和密码设置正确。
    3. 网络连通性问题:确保您的计算机可以访问远程服务器。尝试使用 ping 命令检查网络连接是否畅通。如果无法连接,请检查本地网络的设置和配置。
    4. 凭据问题:虽然您提到了已经确认了密码的正确性,但有时可能由于字符输入错误或其他原因导致的凭据问题。尝试重新输入凭据并确保没有遗漏或输入错误。
    5. DNS 解析问题:有时域名解析可能出现问题,导致无法正确解析服务器名称。可以尝试使用服务器的 IP 地址直接连接来排除这个问题。
    6. 权限问题:确保您有足够的权限访问远程共享。有时即使路径正确,如果没有适当的权限也可能导致连接失败。

    针对您的代码,我注意到您在连接时使用了 \\\\ 作为路径前缀,这在某些情况下可能会导致问题。尝试使用双反斜杠 \\ 或单斜杠 / 来表示路径。此外,确保所有其他参数(如用户名和密码)都是正确的。

    如果以上建议都没有解决问题,建议检查服务器的日志或联系网络管理员以获取更多关于问题的详细信息。

    评论

报告相同问题?

问题事件

  • 修改了问题 9月8日
  • 修改了问题 9月8日
  • 赞助了问题酬金15元 9月8日
  • 创建了问题 9月8日

悬赏问题

  • ¥15 有偿求苍穹外卖环境配置
  • ¥15 代码在keil5里变成了这样怎么办啊,文件图像也变了,
  • ¥20 Ue4.26打包win64bit报错,如何解决?(语言-c++)
  • ¥15 clousx6整点报时指令怎么写
  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?
  • ¥15 Arduino的wifi连接,如何关闭低功耗模式?
  • ¥15 Android studio 无法定位adb是什么问题?
  • ¥15 C#连接不上服务器,