我做的一个项目b/s的,需要和c++写的dll通信这个dll主要是给一个c++的应用程序发消息,发消息的方式是先找到进程,然后给进程发消息症状是这样的我在vs2005里编译的时候这个dll就能正常运行可是我直接访问网页,这个dll就总是返回找不到c++应用程序的错误起初我怀疑是权限的问题,我就在程序里模拟管理员帐户不行.又把aspnet加到管理员组还是不行.然后我又修改macihe.config,让aspnet_wp.exe运行在管理员帐户上也不行实在没招了.请问是什么问题啊各位高手们

解决方案 »

  1.   

    这个dll我放在system32目录下试过放在bin目录下然后指定绝对路径也试过都是一样的结果
      

  2.   

    to 起初我怀疑是权限的问题,我就在程序里模拟管理员帐户不行.又把aspnet加到管理员组模拟用户应该是可以的,你可以试试.net提供的process类,看看是否能找到你需要通讯的进程。
      

  3.   

    process我也试过了我也试过了api函数
    ShellExecute都不行找这个应用程序进程不是我在c#里找的是我给c++写的dll发消息,这个dll去找的但是问题是我在编译的时候他能找到.在直接输入url地址的时候却找不到了
      

  4.   

    模拟用户我试过了确实不行我让aspnetwp这个进程在Administrator下运行都不行
      

  5.   

    to 但是问题是我在编译的时候他能找到.在直接输入url地址的时候却找不到了两者的地址有什么不同?
    你的服务器操作系统是什么
      

  6.   

    编译的时候不是启动了一个WebServer吗?,使用的一个新的端口我在xp的操作系统和2003的操作系统上都运行过
      

  7.   

    xp上我的测试还要做的多一些各种测试都做过
    包括把dll放到不同的地方让各种不同的用户来运行aspnetwp进程愚翁兄,你觉得可能是什么问题呢为什么编译的时候就能正确运行了.
      

  8.   

    你的问题关键不是在于调用dll的问题,而是调用的dll和进程在不同的用户环境下
      

  9.   

    to 在不同的用户环境下是什么意思?你的web程序运行在aspnet用户下,而其他用户进程运行在登录用户下,因此两者是无法彼此访问的。
      

  10.   

    后来我把他改在我当前的用户帐户下运行aspnet_wp.exe也还是不行啊
      

  11.   

    我大致试了一下,发现web用模拟用户运行程序,产生的进程属于aspnet用户,这让它很难操纵其他进程。
      

  12.   

    运行aspnetwp.exe的用户可以在machine.config里修改的改了之要要重启一下电脑我试过确定是可以运行在其他的帐户上的
      

  13.   

    to 后来我把他改在我当前的用户帐户下运行aspnet_wp.exe你在这种情况下,通过process.start运行的进程属于什么用户
      

  14.   

    好象看到了也是属于这个帐户的我用process打开了一个记事本试过的
      

  15.   

    显示不了有人说asp.net调用其他的应用程序的时候是不会显示窗口的
    我是在任务管理器里看到的
      

  16.   

    本着变动不大的原则,你可以试试如下的方案,首先,用.net做一个windows service,然后它调用dll进行发送消息,这方面你可以去试试,相对于web程序而言,它控制桌面进程要容易得多(可能需要把它的允许桌面交互打开)。那么在web程序中对service进行start和stop控制,这是没有任何问题的,只要提升aspnet用户权限或者模拟用户即可实现。
      

  17.   

    to 只是一个int值如果值是固定的话,可以在service写死;否则通过临时文件进行传递数据信息。
      

  18.   

    这个int值不是固定的值如果用服务的话我需要传递参数过去啊并且这个调用是很频繁的.我怕这样的话会有问题
      

  19.   

    to 并且这个调用是很频繁的.
    我怕这样的话会有问题这倒没有什么问题,可以通过mutex进行保护一下。主要用其他方法,变动就大了,不光是web程序需要改动,而且你的c++程序也需要改动。
      

  20.   

    好了,我要下了,有什么事的话,可以留msg给我。
      

  21.   

    他奶奶的个胸终于搞定了我把aspnet_state这个服务让他运行在本地系统帐户下而不是network service帐户就可以了我调用c++的dll怎么和这个东西有关系哦.
      

  22.   

    我把aspnet_state这个服务让他运行在本地系统帐户下
    =========================
    如何做呢?