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

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 在虚拟机中安装flash code
  • ¥15 单片机stm32f10x编写光敏电阻调节3.3伏大功率灯亮度(光强越大灯越暗,白天正常光强灯不亮,使用ADC,PWM等模块)望各位找一下错误或者提供一个可实现功能的代码
  • ¥20 verilog状态机方法流水灯
  • ¥15 pandas代码实现不了意图
  • ¥15 GD32H7 从存储器到外设SPI传输数据无法重复启用DMA
  • ¥25 LT码在高斯信道下的误码率仿真
  • ¥45 渲染完成之后将物体的材质贴图改变,自动化进行这个操作
  • ¥15 yolov5目标检测并显示目标出现的时间或视频帧
  • ¥15 电视版的优酷可以设置电影连续播放吗?
  • ¥50 复现论文;matlab代码编写