【问题标题】:Why is this code stopping? VB ASP.NET为什么这段代码会停止? VB ASP.NET
【发布时间】:2008-12-08 21:36:13
【问题描述】:

嘿,我正在使用 Visual Studio 2003 进行编码。我的程序运行良好,直到我引入了使用 CreateObject 创建的 dll。 代码:

Set docs2 = server.CreateObject("DocGetter.Form1")
docs2.GetDocument oXMLDom,numID

它似乎卡在了这段代码上。我已经使用 regasm 注册了 dll。 还有什么问题?

【问题讨论】:

  • 这是一个网络应用程序,DocGetter.Form1 是一个实际的表单对象吗?
  • CreateObject 是邪恶的! .Net 代码中没有它的位置。

标签: asp.net vb.net code-behind


【解决方案1】:

在项目中添加对 dll 的引用并像这样实例化对象:

Dim docs2 As New DocGetter.Form1()

如果这没有意义,那么就修复它。没有充分的理由在 .Net 代码中使用 CreateObject。 (好吧,这有点夸张。但校长是正确的)。

【讨论】:

    【解决方案2】:

    你能澄清一下 - 这是一个网络应用程序还是一个客户端(winform)应用程序? Form1 听起来像一个winform。 ASP.NET 在服务器上运行,因此显示表单是不合适的——它会发生在服务器上,而不是客户端。简而言之,不要这样做!

    我也看不到“存储过程”的位置,所以我删除了标签。

    你想做什么?在客户端显示更复杂的内容的选项包括:

    • dhtml
    • 闪光
    • 银光
    • clickonce [需要 windows 客户端]
    • ocx [不推荐]

    【讨论】:

    • aps.net 使用表单范式
    • @Joel - 确实如此,但如果没有来自 OP 的更多上下文,则不清楚此 Form1 是 webform 还是 winform。
    【解决方案3】:

    我敢打赌,这个函数不是用这个名称和/或参数定义的。

    docs2.GetDocument oXMLDom,numID
    

    但是由于您实例化对象的方式,编译器无法知道这一点...我认为。

    【讨论】:

      猜你喜欢
      • 2018-08-03
      • 1970-01-01
      • 1970-01-01
      • 2013-10-05
      • 1970-01-01
      • 2018-10-28
      • 2013-04-27
      • 2012-06-06
      • 1970-01-01
      相关资源
      最近更新 更多