服务器对象 错误 'ASP 0196 : 80040154' 
不能运行进程外组件  /doUpload.asp, 行32 
只可使用 InProc 服务器组件。如果你想使用 LocalServer 组件, 你必须修改 AspAllowOutOfProcComponents 中继库设置。请参照帮助文件。 
asp中的源代码如下:
    <%
const UploadOK               = 0
const FilesizeInvalid        = 1
const ExtensionNotAllowed    = 2
const DestinationPathInvalid = 3
const UnknownError           = 4
const UnableToCreateFile     = 5
const FileDoesntExist        = 6
Dim nUploadResult
Dim objUploader
Dim strError
Dim strUserName
Dim strHiddenValue
Dim strFileUploaded Set objUploader = Server.CreateObject("InetUtil.Uploader")  objUploader.StartUpload(Request)

strUserName    = objUploader.GetFormValue("userName")
strHiddenValue = objUploader.GetFormValue("hiddenValue")
objUploader.SetDestinationPath "c:\temp"
objUploader.SetAllowedExtensions "*"  ' all extensions
objUploader.SetForbiddenExtensions "exe", "com" nUploadResult   = objUploader.UploadFile("uploadFile")
strFileUploaded = objUploader.GetUploadFilename("uploadFile")
strError        = objUploader.GetError(nUploadResult)
%>

解决方案 »

  1.   

    这是应为InetUtil.Uploader对象是在exe中实现的,即所谓的LOCAL_SERVER。Dll中实现的称为InProc_Server。你必须重新设置AspAllowOutOfProcComponents属性,设置为True;
      

  2.   

    请问如何设置AspAllowOutOfProcComponents属性,ffxi大侠请指点。谢谢了!
      

  3.   

    InetUtil是个EXE文件把?
    只有DLL的COM才可以在ASP里用...
      

  4.   

    ActiveX EXE需要在注册表里填写文件名才可以运行
    所以一般都用ActiveX dLL
      

  5.   

    去MSDN里搜索“AspAllowOutOfProcComponents”关键字,可在Knowledge Base中找到“PRB: Cannot Launch Out of Process Component Under IIS 4”(KB Q184682),这篇文章里详细讲述了这个问题,并提供了解决方案。以后遇到问题应该先自己在MSDN里寻找答案,或自己想办法,实在不行了再来问别人。否则你的水平很难有长进。
      

  6.   

    InetUtil组件创建的时候建的是ActiveX Exe吧?
    改成ActiveX Dll