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

时间:2010-03-14 13:49:41

标签: c# asp.net 64-bit windows-media-encoder

我在MS Server 2003 64位上的Microsoft Visual C#2008 Express Edition中创建(并使用)了一个Windows Media Encoder对象。这很好。

但是,当我尝试在MS Server 2003 64位上使用Microsoft Visual Web Developer 2008创建等效的Windows Media Encoder对象时,抛出了以下异常:

“由于以下错误,检索具有CLSID {632B606A-BBC6-11D2-A329-006097C4E476}的组件的COM类工厂失败:80040154。”

不能注册组件,因为它们都引用了相同的WMEncEng.dll文件。 Microsoft Visual Web Developer 2008代码在XP 32位上也运行良好。

这是权限问题吗?无论如何,任何人都有任何想法为什么会出现这个问题,更重要的是,如何解决它?

谢谢。

以下是MS Server 2003 64位的两个代码段:

Microsoft Visual Web Developer 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;
            }

        }
    }
}

1 个答案:

答案 0 :(得分:0)

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