3515|1

85

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

用c#写的在wm里拨号函数rasDial总是报错691,但是手动拨号可以 [复制链接]

大家好!
我用ras在phonebookEntry里面建立了一个entry要拨电信的#777,用户名ctnet@mycdma.cn,密码vnet.mobile,并把参数设置为了
rasEntry.dwCountryCode = 1;
rasEntry.dwfNetProtocols = 4;
rasEntry.dwfOptions = 4194824;
rasEntry.dwFramingProtocol = 1;
rasEntry.dwSize = 3472;
rasEntry.szDeviceName = "Cellular Line";
rasEntry.szDeviceType = "modem";
rasEntry.szLocalPhoneNumber = "#777";
lpb[0] = 180;
lpb[1] = 1;
lpb[4] = 180;
lpb[8] = 180;
lpb[9] = 1;
lpb[12] = 1;
lpb[16] = 15;
lpb[20] = 1;
lpb[24] = 2;           
ret = RasSetEntryProperties(null, "ctnet", ref rasEntry, rasEntry.dwSize, lpb, lpbSize);

而且这个连接,我用多普达的机子t5399,windows mobile 6.5,测试后是可以手动连接上的。

后来我结合一些网站的代码,写了下面这个函数,每次测试时,都是报错,代码为691.网上的691错误解释是:因为用户名和/或密码在此域上无效,所以访问被拒绝。

我实在是搞不定了,请各位大侠求助!!!


public static void DialUp( )
        {

            IntPtr tmpRasSession = IntPtr.Zero;

            //check the connection state first
            if (IntPtr.Zero != m_pRasSession)
            {
                RASCONNSTATE resConnState = (RASCONNSTATE)GetStatus();
                if (RASCONNSTATE.RASCS_Connected == resConnState ||
                    RASCONNSTATE.RASCS_PortOpened == resConnState ||
                    RASCONNSTATE.RASCS_DeviceConnected == resConnState ||
                    RASCONNSTATE.RASCS_AllDevicesConnected == resConnState ||
                    RASCONNSTATE.RASCS_Authenticate == resConnState ||
                    RASCONNSTATE.RASCS_AuthAck == resConnState ||
                    RASCONNSTATE.RASCS_Authenticated == resConnState)
                {
                    return;
                }
            }

            RASDIALPARAMS rasDialParams = new RASDIALPARAMS();
            rasDialParams.size = Marshal.SizeOf(rasDialParams);
            rasDialParams.entryName = "ctnet";
            rasDialParams.userName = "ctnet@mycdma.cn";
            rasDialParams.password = "vnet.mobile";

            int lResult = RasDial(IntPtr.Zero, IntPtr.Zero, RASDIALPARAMS.ToBytes(rasDialParams), 0xFFFFFFFF, IntPtr.Zero, ref m_pRasSession);

            //int t = RasDial(null, null, rasDialParams, 0xFFFFFFFF, null, ref m_pRasSession);

            if (lResult != 0)
            {
                //throw new Exception(string.Format("RasDial failed: Error {0}", lResult));

                int lStatus = RasHangUp(m_pRasSession);


                //Marshal.FreeHGlobal(m_pRasSession);

                MessageBox.Show(lResult.ToString(), "dial-up Error");

                if (lStatus != 0)
                    MessageBox.Show(lStatus.ToString(), "hang-up Error");
            }
        }

最新回复

很急啊,自己顶,自己顶上去  详情 回复 发表于 2010-2-24 09:11
点赞 关注

回复
举报

63

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
很急啊,自己顶,自己顶上去
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表