问题描述
我使用C#创建一个dll在VS2008。它是使用.NET Framework 2.0编译。该项目是使用Visual C#/ Windows下的类库模板创建的。我不知道,但如果该事项我尝试使用结果DLL中经典的ASP和asp.net应用程序不是一个桌面应用程序。
这是从利用现有传统ASP的VBScript code和C#中重写它创造。我不是很有经验的创造的dll所以有很多还需要学习。我一直在寻找在创造这个DLL所有样的帮助网页。
这是我迄今所做的。
顶层类设置是这样的:
使用System.Runtime.InteropServices;
使用的System.EnterpriseServices;
使用系统;
使用System.Text;
使用的System.Web;[大会:应用程序名称(WebFramework)]
[大会:ApplicationActivation(ActivationOption.Server)
[大会:ApplicationAccessControl(假的,
AccessChecksLevel = AccessChecksLevelOption.ApplicationComponent)命名空间WebFramework
{
[GuidAttribute(AACB678E-2C54-450A-873D-77A5A15BA0E5)]
公共类框架:ServicedComponent的
{
//布拉赫
}
}
其他类项目是公开的,他们都从类继承框架。我并没有包括这些类的GuidAttribute指令,因为我不知道这是否是必要的或没有。我也需要他们接触,因为我会从我传统的ASP / asp.net应用程序中引用它们。
在我编我的code我复制了三个文件; Inter.Scripting.dll,WebFramework.dll和WebFramework.pdb到Web服务器
该网站的服务器是与IIS 7.5安装。
在Windows 2008 R2箱在服务器上的命令提示符下,我跑了regsvcs程序,并安装了这个组件,并与出任何问题注册的DLL。该命令窗口是这样的:
<$p$p><$c$c>E:\\inetpub\\wwwroot\\web\\WebFramework>\"C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319/regsvcs.exe\" /应用程序的名字:WebFramework /tlb:WebFramework.tlb WebFramework.dll微软(R).NET框架服务安装实用程序版本4.0.30319.17929版权所有(C)微软公司。版权所有。安装组件:大会:E:\\的Inetpub \\ wwwroot的\\网络\\ WebFramework \\ WebFramework.dll
应用:WebFramework
类型库:E:\\的Inetpub \\ wwwroot的\\网络\\ WebFramework \\ WebFramework.tlb
我查了组件服务应用程序,并有下COM +应用WebFramework对象。我也跑regedit并搜索WebFramework,它发现我的电脑下的应用程序\\ HKEY_CLASSES_ROOT \\ WebFramework ..
到目前为止,我觉得一切是正确的....是吗?
当我运行一个测试传统的ASP页面具有以下code,我得到的错误424 - 必需对象
&LT; HTML和GT;
&LT; HEAD&GT;
&LT;标题&GT;&LT; /标题&GT;
&LT; /头&GT;&LT;身体GT;
&LT;脚本类型=文/ VBScript中&GT;
在错误恢复下一页 昏暗WebFrame
设置WebFrame =的Server.CreateObject(WebFramework.Framework) 的document.write(&LT;小时&gt;中)
文件撰写(Err.Number的)
的document.write( - )
文件撰写(Err.Description它将)
的document.write(&LT; BR&GT;&LT;小时&gt;中) &LT; / SCRIPT&GT;
&LT; /身体GT;
&LT; / HTML&GT;
我在想什么?为什么不能在ASP页面查找DLL?
我忘了提一件事。在生成选项卡上的项目属性页中存在一个注册为COM Interop复选框。我曾尝试使用该选项编译选中和未选中它并没有区别。
而专注您的COM组件是问题试着改变你的ASP code到有效的语法。
Why the Object Not Found
Error?
As stated above your code wasn't valid, why?
Use of
<script type="text/vbscript">
tag (usuallyrunat="server"
is required to use<script>
tags server side, but as you get an error that suggests it is being processed by ASP. In future though I would recommend you use<%
and%>
to distinguish server side processing.Unless you instantiate it somewhere else, there is no such ASP object called
Document
. If I was to guess I would say you are trying to output to screen. To do this use the inbuiltResponse
object (server side request are made up ofRequest
andResponse
).
I would say your Object Not Found
is caused by ASP not understanding what Document
is and hence raises the Object Not Found
error.
这篇关于注册COM +对象不能在传统的ASP中找到的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!