用Asp调用C#写的COM组件。VS2005

http://yomin.blogbus.com/logs/27750006.html

 

最近的一个项目要用到ASP来调用C#写的com组件。

在网上找了很多相关的资料,由于不少文章的开发环境都是VS2003,所以遇到了不少问题。

现在总结一下过程。

1、创建一个C#的类库。名称为ASPcall。

2、修改class1.cs的代码如下:

using System;
using System.Collections;
using System.ComponentModel;
using System.Runtime.InteropServices;

namespace ASPcall
{
    [Guid("3B5D553B-2F2B-4c54-BFA6-33CC23380A49")]
    public interface ISamples
    {
        [DispId(0)]
        string[] isSamples();
    }
    public class Samples : ISamples
    {
        public Samples()
        {
        }

        public string isSamples()
        {
            return "OK";
        }

        #region ISamples 成员

        string[] ISamples.isSamples()
        {
            throw new Exception("The method or operation is not implemented.");
        }

        #endregion
    }
}

注意: Guid用工具菜单中的创建GUID工具生成。

3、修改AssemblyInfo.cs中的[assembly: ComVisible(false)]为[assembly: ComVisible(true)]。

4、打开 Visual Studio 2005 命令提示 工具。

运行 sn -k ASPcall.snk

将生成的ASPcall.snk复制到Class1.cs所在的目录。

5、设置项目属性。选中 生成 中的 为 COM Interop 注册

6、选中 签名 中的 为程序集签名。 选择刚才创建的 ASPCall.snk 文件。

7、生成解决方案。

8、在 Visual Studio 2005 命令提示 中进入bin\debug目录,执行  regasm ASPCall.dll /codebase

9、在ASP中调用的代码如下:

<%
Set objDns = Server.CreateObject("ASPCall.Samples")
Response.Write objDns.isSamples()
%>

你可能感兴趣的:(asp)