发送到浏览器的消息如下:
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。已从网站项目手动更改。
为了解决我的问题,我执行了以下操作:
- 将项目转换为 Web 应用程序。这将使 App_Code 重命名为 Old_App_Code。
- 将所有 Old_App_Code 资源移至类库,然后在 Web 应用程序中引用该库。
@Tony:谢谢你指导我。
关于asp.net - 为什么在 ASP.NET Web 应用程序上调用 WebMethod 时出现不明确的类型错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5171257/