在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”。