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 ビットの 2 つのコード スニペットを次に示します。
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;
}
}
}
}