asp.net - 为什么在 ASP.NET Web 应用程序上调用 WebMethod 时出现不明确的类型错误?

标签 asp.net web-services debugging web-applications

发送到浏览器的消息如下:

The type My.API.Class is ambiguous: it could come from assembly '[on Temporary ASP.NET Files]' or from assembly '[on bin folder]'

调试 Web 应用程序时会出现此问题,特别是向 WebService 的 WebMethod 发出请求时。

该项目编译得很好。如果我发布 Web 应用程序,它会在 bin 文件夹中生成 My.Website.dll。效果很好。

asmx 文件位于应用程序的根目录中。 CodeBehind 文件位于 App_Code 上,并标记为要编译生成 My.Website.dll。

我应该错过一些非常重要的东西。

我发现有人有同样的问题,并且可能有相关的原因。 Check it out 。这个人暴露问题的方式有点相似,但当他谈论我不使用的代理类和共享 dll 时,我开始迷失方向。

感谢任何帮助。

最佳答案

根据this ,App_Code 文件夹只能用于网站项目。这就是 asmx 的 CodeBehind 也在运行时编译的原因。

最初的问题是基于 Web 应用程序提出的。但我没有指定这个Web App。已从网站项目手动更改。

为了解决我的问题,我执行了以下操作:

  1. 将项目转换为 Web 应用程序。这将使 App_Code 重命名为 Old_App_Code。
  2. 将所有 Old_App_Code 资源移至类库,然后在 Web 应用程序中引用该库。

@Tony:谢谢你指导我。

关于asp.net - 为什么在 ASP.NET Web 应用程序上调用 WebMethod 时出现不明确的类型错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5171257/

相关文章:

.net - 在 Visual Studio 2010 调试期间观察 .NET 堆栈或 CIL?

debugging - 在摩托罗拉 Droid 上调试 native 代码

javascript - 如何在 gridview 图像按钮内使用模态弹出扩展器?

ASP.NET 电子邮件验证器正则表达式

asp.net - 无法在 ASP.NET/IIS7 经典模式下设置 HTTP 响应头

c# - StackExchange.Redis 是否在内存缓存中使用本地?

Java/XML问题

web-services - Tomcat 或 Web 服务代理中的 Http 重定向

Android、KSoap2 和 .NET Web 服务 w/parameters = NULL 结果

c# - visual studio 2010 调试器挂起