2011-10-06 52 views
0

我创建了一个小型web服务,我运行它在Visual Studio Development Server,它运行良好。然后我决定运行它(仍然通过Visual Studio)到IIS为什么IIS拒绝我的Code.Behind标记?

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

任何人都可以向我解释原因吗?

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

+0

请稍微详细一点。 “拒绝工作”......以什么方式?显示了什么错误,如果有的话?你的Web服务代码在哪里呢?在.asmx中内联?或者在代码隐藏? –

回答

1

页面或webservice指令中使用的CodeBehind属性在运行时不使用。它只被Visual Studio使用,所以它知道关联的.cs或.vb文件。

Web服务或页面的继承的类属性告诉它是在运行时使用的类。如果它是一个网站而不是Web项目,那么在运行时使用代码文件来查找页面的相关代码。

错误消息将帮助找出你遇到的问题。

+0

啊,这是事情。感谢您的解释! (至于一个错误消息,以及我已经把它放在编辑中:我觉得它不是真正的重点;)) – Kheldar