在MS Server 2003上的ASP.NET中未创建Windows Media编码器对象64位

问题描述:

我在MS Server 2003 64位上的Microsoft Visual C#2008速成版中创建(并使用了)Windows Media编码器对象。这工作得很好。在MS Server 2003上的ASP.NET中未创建Windows Media编码器对象64位

然而,当我试图创建使用Microsoft的Visual Web Developer 2008 MS服务器上的等效的Windows Media编码器对象2003 64位,以下异常被抛出:

“检索COM类工厂CLSID组件{632B606A-BBC6-11D2-A329-006097C4E476}由于以下错误而失败:80040154.“

它不能是组件未注册,因为它们都对同一个WMEncEng.dll文件有引用。 Microsoft Visual Web Developer 2008代码在XP 32位上也能正常工作。

它可能是一个权限问题?无论如何,任何人有任何想法为什么会发生这个问题,更重要的是,如何解决它?

谢谢。

下面是MS服务器的两个代码段2003 64位:

微软的Visual Web开发人员2008年(没有工作):

using System; 
using WMEncoderLib; 

namespace TestWMEnc 
{ 
    public partial class _Default : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      try 
      { 
       WMEncoder encoder = new WMEncoder(); //exception thrown 
       // ... 

      } 
      catch (Exception err) 
      { 
       string exception = err.Message; 
      } 

     } 
    } 
} 

的Microsoft Visual C#2008 Express Edition的(工作得很好):

using System; 
using System.Windows.Forms; 
using WMEncoderLib; 

namespace testWMEncoder 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      try 
      { 
       WMEncoder encoder = new WMEncoder(); 
       // ... 

      } 
      catch (Exception err) 
      { 
       string exception = err.Message; 
      } 

     } 
    } 
} 

我在“WMEncoder encoder = new WMEncoder();”中得到此错误“代码为x86目标编译,但在x64系统上运行。如果可能,尝试将VWD中的目标系统设置为“任何CPU”。