我不确定是什么导致了这个错误。
服务标记:
<%@ ServiceHost
Language="C#"
Debug="true"
Service="WebRole1.ExpenseService"
CodeBehind="ExpenseService.svc.cs"
Factory="System.ServiceModel.Activation.WebServiceHostFactory"
%>
背后的服务代码:
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class ExpenseService
{
[OperationContract]
[WebGet(UriTemplate="expenses", ResponseFormat=WebMessageFormat.Xml)]
public List<ExpenseInfo> GetExpenses()
{
List<ExpenseInfo> result = new List<ExpenseInfo>();
// ...
return result;
}
}
如果我运行项目并导航到浏览器上的服务,则数据显示正常。
如果我尝试添加服务http://localhost:88/ExpenseService.svc/expenses
,我会收到错误:
网址上的文件 http://localhost:88/ExpenseService.svc/expenses 未被认定为已知文件 类型。
来自每种已知类型的错误消息 可以帮助您解决问题:
来自'XML Schema'的报告是'W3C XML Schema的根元素 应该和它的命名空间 应该 'http://www.w3.org/2001/XMLSchema'。“。
来自“DISCO文档”的报告是“URL上的发现文档” http://localhost:88/ExpenseService.svc/expenses 无法找到。'。
无法识别文档格式。
来自'WSDL Document'的报告是'XML文档中存在错误(1, 2)。'
- 没想到。
元数据包含一个引用 无法解决: 的 'http://本地主机:88 / ExpenseService.svc /支出'。
远程服务器返回了一个 意外回应:(405)方法不是 允许的。
远程服务器返回错误: (405)方法不允许。
如果服务是在。中定义的 目前的解决方案,尝试建立 解决方案并添加服务 再次参考。
如果我尝试向http://localhost:88/ExpenseService.svc
添加服务引用,则会收到错误:
下载'http:// localhost:88 / ExpenseService.svc'时出错。 请求失败,HTTP状态为404:未找到。 元数据包含无法解析的引用: 的 'http://本地主机:88 / ExpenseService.svc'。 在http://localhost:88/ExpenseService.svc没有可以接受该消息的端点监听。这通常是由错误的地址或SOAP操作引起的。有关更多详细信息,请参阅InnerException(如果存在)。 远程服务器返回错误:(404)Not Found。 如果在当前解决方案中定义了服务,请尝试构建解决方案并再次添加服务引用。
我做错了什么?
更新:此页面可能有用:http://code.msdn.microsoft.com/wcfazure/Wiki/View.aspx?title=KnownIssues
更新2 :我尝试了该网站上的建议,没有运气。
答案 0 :(得分:0)
我最初在启用AJAX时创建了引用。我删除它并制作了一个典型的WCF,它似乎正在工作。 (虽然我仍然遇到SecurityException
个问题,详见我的另一个问题。)