简单 COM+ 服务器引发意外异常
本文关键字:意外 异常 COM+ 服务器 简单 | 更新日期: 2023-09-27 18:36:22
我写了一个简单的ServicedComponent
。using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.EnterpriseServices;
namespace ComPlusServer
{
[ComVisible(true)]
[ClassInterface(ClassInterfaceType.AutoDual)]
[Guid("9C674ECA-1B71-42EA-9DB2-9A0EA57EC121")]
[Description("Hello Server")]
public class HelloServer : ServicedComponent
{
[Description("Say Hello!")]
public String SayHello()
{
return "Hello!, ";
}
}
}
和 Windows 窗体应用程序
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using ComPlusServer;
namespace Client
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
HelloServer server = new HelloServer();
MessageBox.Show(server.SayHello(), "Message from HelloServer");
}
}
}
在组件服务 MMC 的"应用程序属性"的"安全"选项卡上,我将"调用的身份验证级别"降低到"无"和"模拟级别",以识别和取消选中"在授权时对此应用程序强制实施访问检查"。
我不断收到服务组件异常异常说
基于角色的方法级安全性需要接口定义 类方法。
对此有任何想法吗?
我相信
这意味着需要在接口中定义组件类的方法。
[ComVisable(true)]
public interface IHelloServer
{
public String SayHello();
}
现在让你的 componet 类实现接口:
[ComVisable(true)]
[ClassInterface(ClassInterfaceType.AutoDual)]
[ComDefaultInterface(typeof(IHelloServer))]
[Guid("9C674ECA-1B71-42EA-9DB2-9A0EA57EC121")]
[Description("Hello Server")]
public class HelloServer : ServicedComponent, IHelloServer
{
[Description("Say Hello!")]
public String SayHello()
{
return "Hello!, ";
}
}