Объект Windows Media Encoder не создан в ASP.NET на MS Server 2003 64 бит - PullRequest
2 голосов
/ 14 марта 2010

Я создал (и использовал) объект Windows Media Encoder в Microsoft Visual C # 2008 Express Edition на MS Server 2003 64 бит. Это работало нормально.

Однако, когда я попытался создать эквивалентный объект Windows Media Encoder с помощью Microsoft Visual Web Developer 2008 на 64-разрядной версии MS Server 2003, возникло следующее исключение:

"Не удалось получить фабрику класса COM для компонента с CLSID {632B606A-BBC6-11D2-A329-006097C4E476} из-за следующей ошибки: 80040154."

Не может быть, чтобы компонент не был зарегистрирован, поскольку оба имеют ссылку на один и тот же файл WMEncEng.dll. Код Microsoft Visual Web Developer 2008 также отлично работал на 32-разрядной версии XP.

Может ли быть проблема с разрешениями? Независимо от того, у кого-нибудь есть идеи, почему возникает эта проблема и, что более важно, как ее решить?

Спасибо.

Вот два фрагмента кода из 64-разрядного MS Server 2003:

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 голосов
/ 14 июня 2010

Я получаю эту ошибку в "WMEncoder encoder = new WMEncoder ();" с кодом, скомпилированным для цели x86, но работающим в системе x64. Попробуйте установить целевую систему в VWD на «Любой процессор», если это возможно.

...