【发布时间】:2011-09-08 00:23:20
【问题描述】:
要求 从经典 ASP 调用 C# 函数。
解决方案
经过数小时的研究,我能够从经典的 asp 调用 c# 函数。我觉得我已经做了很多步骤(如下)。不确定这是否是正确的方法。寻求专家建议。
开发机器:VS 2010 生产服务器:安装了 Framework 4 的 Windows 2008
在 C#(开发机器)中创建 com dll 的步骤
- 创建类库项目
-
粘贴以下代码
使用系统; 使用 System.Collections.Generic; 使用 System.Linq; 使用 System.Text; 使用 System.Runtime.InteropServices;
命名空间cominter { [指南(“EAA4976A-45C3-4BC5-BC0B-E474F4C3C83F”)] 公共接口 ComClass1Interface { 字符串测试();
} [Guid("0D53A3E8-E51A-49C7-944E-E72A2064F938"), ClassInterface(ClassInterfaceType.None)] [ComVisibleAttribute(true)] public class ComClass1 : ComClass1Interface { public string test() { return "vivek"; } }}
在属性->构建中,勾选注册COM互操作
- 在属性-> 签名中,勾选签署程序集。创建了一个密钥文件
- 构建解决方案
- 使用 regasm /regfile 创建 regfile
Server 2008(生产)中安装 dll 的步骤
将 gacutil.exe 和 gacutil.exe.config 从开发机器 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\ 复制到服务器 C:\Windows \Microsoft.NET\Framework\v4.0.30319
运行开发机生成的注册表文件
有没有更好的方法?我也不确定是否需要上述所有步骤。任何专家的建议都会很棒。
问题
类名和接口名上面的 GUID 有什么用。真的需要吗?我刚刚从msdn复制了这个。如果需要,我应该创建自己的 id 还是留下它。是否有创建此 guid 的工具
是必需的接口。不带接口也能用吗?
需要创建密钥。当我在生产中安装这个 dll 时,我没有复制密钥文件。
要复制哪些文件。我复制了 dll 和 tlb 文件并运行了 gacutil
有没有更好的方法来安装这个 com dll
我运行了注册表脚本。这是必需的吗?
【问题讨论】:
标签: asp.net windows-server-2008