山西念星科贸有限公司 2024-09-08 15:09 采纳率: 72%
浏览 20
已结题

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

  • 写回答

25条回答 默认 最新

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

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

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

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

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

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

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月15日
  • 修改了问题 9月8日
  • 修改了问题 9月8日
  • 赞助了问题酬金15元 9月8日
  • 展开全部

悬赏问题

  • ¥15 如何构建全国统一的物流管理平台?
  • ¥100 ijkplayer使用AndroidStudio/CMake编译,如何支持 rtsp 直播流?
  • ¥20 和学习数据的传参方式,选择正确的传参方式有关
  • ¥15 这是网络安全里面的poem code
  • ¥15 用js遍历数据并对非空元素添加css样式
  • ¥15 使用autodl云训练,希望有直接运行的代码(关键词-数据集)
  • ¥50 python写segy数据出错
  • ¥20 关于线性结构的问题:希望能从头到尾完整地帮我改一下,困扰我很久了
  • ¥30 3D多模态医疗数据集-视觉问答
  • ¥20 设计一个二极管稳压值检测电路