【问题标题】:Why does IIS refuse my Code.Behind tag?为什么 IIS 拒绝我的 Code.Behind 标签?
【发布时间】:2011-10-06 13:45:13
【问题描述】:

我创建了一个小型 Web 服务,我在 Visual Studio Development Server 中运行它并且运行良好。然后我决定在IIS 上运行它(仍然通过 Visual Studio)。

在我从 asmx 标记中的 Webservice 元素中删除 Code.Behind 属性之前,我的 Webservice 拒绝工作。现在它运行完美。

谁能给我解释一下原因?

编辑:拒绝工作,我的意思是我得到了一个错误页面,上面写着This page must have a <%@ webservice class ... %> directive,它有。至于“代码在哪里”,我有一个包含该行的标记,以及包含类实现的 asmx.cs 文件。请记住,这段代码有效,现在没有元素它也有效,所以让我感到困惑的是 VSDS 和 IIS 之间的行为差​​异。

【问题讨论】:

  • 请详细一点。 “拒绝工作”……以什么方式?显示了什么错误(如果有)?您的 Web 服务代码在哪里 - 内嵌在 .asmx 中?还是在代码隐藏中?

标签: c# asp.net web-services iis


【解决方案1】:

页面或 web 服务指令中使用的 CodeBehind 属性在运行时不使用。它仅由 Visual Studio 使用,因此它知道关联的 .cs 或 .vb 文件。

Web 服务的类属性或页面的继承告诉它在运行时使用什么类。如果是网站而不是 Web 项目,则在运行时使用 codefile 来查找页面的关联代码。

错误消息将有助于找出您遇到的问题。

【讨论】:

  • 啊,原来如此。感谢您的解释! (至于错误消息,我已经把它放在编辑中:我觉得它不是很重要;))
猜你喜欢
  • 1970-01-01
  • 2022-07-25
  • 1970-01-01
  • 2012-04-05
  • 1970-01-01
  • 2019-04-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多