DirectoryEntry myds = new DirectoryEntry("LDAP://DC=域,DC=com,DC=cn", userName, password,AuthenticationTypes.Secure);访问AD,总是提示“函数超时”
myds.name=由于以前的函数求值超时,函数求值被禁用。必须继续执行才能重新启用函数求值。很奇怪,不知各位有没有遇到过。相信以前是可以运行的,并且测试环境也能正常获得。
会不会跟AD的环境有关,可是无从查起啊。

解决方案 »

  1.   


    如果WEB项目,采用自动分配端口时,程序能正常。如果采用iisWeb服务器创建虚拟目录的话,就以上提示。这是什么原因?
      

  2.   


    try
                {
                    DirectoryEntry dicObj = new DirectoryEntry("LDAP://...", userName, userPW, AuthenticationTypes.Secure);
                    Object native = dicObj.NativeObject;
                    return true;
                }
                catch
                {
                    return false;
                }
    这么用没出现过问题...
      

  3.   

    楼上的,我也觉得很是神奇,以前也是这么用的,而且测试环境现在都是OK的。
    你的方法一样的。原因是new出来的dicObj就有问题。而不是之后的实例对象。我的以上错误try后,得到:指定的域不存在,或无法联系
      

  4.   

    另外还要说明一下,我用web Application的,如果有windows Application的话,也能正常访问。
      

  5.   

    现在我使用iis7.0时,程序又正常了。
    可能问题还在iis6.0中。对DirectoryEntry组件可能存在差异吧。只能这么解释了。
      

  6.   

    偶也出现了介个问题...之前是因为new出一个新对象,用using默认调用了dispose释放了资源就没事了;之后又遇到了,这次不是因为new...这次的原因在这两段代码:
    SPList trainingInfo = web.Lists["实训预设(教务使用)"];
    CreateAccountsCode.CreateAccounts.CreateGroups(trainingInfo);
    断点执行到第二段代码时,偶查看trainingInfo里面的属性,当看到最后几条就卡了,然后后面几条出现“函数计算超时”,重新一看,全部变成函数计算超时;此前查看第一段代码的trainingInfo,从头看到尾,无论看几次都没问题...郁闷死,找不到原因呐...