调用webservice时,默认的是ASPNET(可能是这个)用户。它的权限比较低,当你在com中有对文件系统操作时,可能就会引起权限问题。
调用时你可以去指定调用这个webservice的用户信息,设成管理员先。
yourWebservice ws = new yourWebservice()
// 设定执行者(访问者)
ws.执行人信息 = 执行人实例。  // 不好意思,手头没有MSDN & VS.net

解决方案 »

  1.   

    Global.asax.cs是基于HttpApplication的,只有一个IPrincipal,也许放在webservice里面可以,但是我希望能保留一个全局的实例,那该怎么做呢?
      

  2.   

    我引用的rtcdll.dll是一个m$的一个网络即时交流的com,可以提供类似于msn的服务,我需要的是由ws接收过来的数据,通过这个com提供的instant message功能发送一个消息到其他机器,由于项目要求必须要用到这个组件,于是就遇到了这个安全问题,引用的时候就是在ide里面直接添加的引用,然后在bin下面产生一个interop的dll文件
      

  3.   

    其中有一点是com类的生成并没有在ws中,而是放在global.asax.cs里面,这是个httpapplication类,我希望能维持一个全局的信息发送中心,至于发送功能当然是放在ws里面,出现权限问题也就是在生成com类的时候,application_start()函数里面