VB.NET web api返回" 404 Not Found"

时间:2014-07-28 18:44:21

标签: asp.net-mvc vb.net asp.net-mvc-4 asp.net-web-api

大家下午好。这是我在此的头一篇博文。虽然我长期以来一直在开发网站和应用程序,但我对使用.NET开发Web服务也有些新意。我刚刚开始一份新工作,这是我的第一个项目。

我正在尝试创建一个从iPad应用程序调用的Web服务。该服务应接受JSON对象,使用JSON中的参数查询数据库,然后根据结果返回JSON字符串。我遵循了本教程:http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api。以下是相关因素等:

  • 我正在使用Visual Studio 2010 SP1
  • 我们在这里使用VB.NET(我问过C#并严厉拒绝)
  • 我安装并使用MVC 4
  • 服务器是远程的,并运行IIS 6
  • 正在运行.NET 4.0框架
  • 我的项目位于正确的池中,并配置为.NET 4.0
  • 我的项目有通配符脚本地图
  • 在我的应用中,Application_Start方法的顺序正确
  • 我甚至添加了MVC“Deployable Dependencies”,但我可能不需要它们

这是我对该服务的AJAX调用:

    var uri = 'api/status';

    $(document).ready(function () {
        $.ajax({
            type: "GET",
            url: uri,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            data: {},
            success: function (result) {
                console.log(result);
            },
            error: function (req, status, error) {
                console.log("req = " + req + ", status = " + status + ", error = " + error);
            }
        });         


    });

这是我的控制器,名为StatusController:

Imports System.Collections.Generic
Imports System.Linq
Imports System.Net
Imports System.Web.Http

Namespace FadecStatus.Controllers
    Public Class StatusController
        Inherits ApiController
        Private engines As FadecStatus.Models.Engine() = New FadecStatus.Models.Engine() {New FadecStatus.Models.Engine() With { _
            .name = "PC-24-0001_2014-04-30_05-55.file", _
            .size = "120KB", _
            .uploadDate = "04/30/2014", _
            .status = "Sent" _
        }}

        Public Function GetAllEngines() As IEnumerable(Of FadecStatus.Models.Engine)
            Return engines
        End Function

    End Class
End Namespace

在所有这些之后,我仍然在尝试访问服务时遇到“404 Not Found”错误。我一直在研究这个并试验一周的大部分时间,包括探索一些遗留格式。我认为这是我想要做的最新和最好的选择。任何建议将非常感激。感谢。

1 个答案:

答案 0 :(得分:0)

我终于明白了。涉及两个步骤:

首先,我无法在调试模式下运行我的应用程序。浏览器将打开然后几乎立即关闭"访问被拒绝"错误。我发现MVC项目在Views文件夹中创建了第二个web.config文件。根web.config文件具有以下部分以允许我复制到Views文件夹中的web.config文件的匿名访问:

<security>
  <authentication>
    <anonymousAuthentication userName="" />
  </authentication>
</security>

我收到的服务器太忙了#34;此后出错,但在我的代码中插入断点允许本地调试半连续工作。

现在修复了本地调试,我的第二步是修复开发站点。此时,我能够确定问题是专门针对远程服务器上的.NET配置。我最初检查了这一点,但显然我做得不对。 This post解决了我的问题。谢谢不屈不挠!