我使用WinForm来托管我的COM组件并在IIS中启动它,它在测试期间在VS中运行良好,但在我发布到IIS之后,我得到了#34;类没有注册"异常,然后应用程序池崩溃。 起初,我认为它与COM注册有关,但我编写了一个测试winform应用程序来调用相同的COM,它在同一台服务器上工作正常。
任何?
class FaceScannerServerHost : Form
{
public FaceScannerServerHost(Control control, bool hidden = false)
{
if (control.IsHandleCreated) throw new InvalidOperationException("control already committed to wrong thread");
if (hidden) this.Opacity = 0;
this.Hide();
this.ShowInTaskbar = false;
using (initDone = new ManualResetEvent(false))
{
thread = new Thread((_) =>
{
try
{
//COM control
AxC_FaceServerSdk axc = (AxC_FaceServerSdk)control;
this.Controls.Add(axc);
//crashed here
Application.Run(this);
}
catch (Exception exp)
{
TraceLog.Debug("AxServer", exp.Message);
}
});
thread.IsBackground = true;
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
initDone.WaitOne();
}
}
答案 0 :(得分:0)
选项:
- asp.net注册到你的iis?
- 检查应用程序池中的框架。
- 启用目录浏览。
- 确保包含所有dll。
- 检查32或64位服务器。
醇>