【发布时间】:2013-10-22 15:07:52
【问题描述】:
我正在尝试在现有的 asp.net Web 表单应用程序中创建 Web 服务,但它不起作用。以下代码描述了该服务:
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class TestService: System.Web.Services.WebService {
public TestService() {
//Uncomment the following line if using designed components
//InitializeComponent();
}
[WebMethod]
public string HelloWorld(string name) {
return "Hello " + name;
}
}
当我尝试测试此 Web 服务时,浏览器会尝试下载该服务而不是执行它:
另外,如果我尝试从另一个项目中引用该服务,我会收到以下错误:
URL http://localhost:64925/services/TestService.asmx 的文档未被识别为已知文档类型。
来自每种已知类型的错误消息可能会帮助您解决问题:
- 来自“XML Schema”的报告是“无法识别文档格式(内容类型为 'text/html; charset=utf-8
我的猜测是这与未正确配置“服务”目录有关,但如果将服务添加到站点的根目录,我会遇到同样的问题。
我已经为 .Net 2 和 4 尝试过 aspnet_regiis 我正在使用带有 IIS Express 的 Visual Studio 2012。
更新: 该网站似乎也在引用 SharePoint 网络服务,我刚刚在错误详细信息中发现了以下奇怪的消息:
下载http://localhost:64925/services/TestService.asmx/_vti_bin/ListData.svc/$metadata 时出错。
请求失败,HTTP 状态为 404:未找到。
【问题讨论】:
-
正如它所说,它是无法识别的内容类型。所以“asmx”类型没有在 IIS 中正确注册,所以当浏览器请求链接时,服务器会认为“这到底是什么 - 我将其作为纯文件提供”,因此下载。
-
@Stevo 谢谢,但我如何修复它运行带有 IIS Express 的 Visual Studio 2012?
-
很遗憾我不能提供具体的指导(因为我不知道)。我将从查看 IIS 配置开始。正如您所说,它可以在站点外的新 Web 服务上运行并且运行良好,因此 IIS 配置中的某些内容无法正常运行。我会研究现有站点和新站点之间的差异,并一一更改现有站点的设置以查找故障。抱歉,我无法提供更多帮助。
标签: c# asp.net web-services iis visual-studio-2012