Я создал (и использовал) объект 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;
}
}
}
}