URL路由在IIS Local上不起作用,但在IIS Express上起作用

时间:2018-07-25 16:56:56

标签: url iis asp.net-mvc-5 routing iis-express

向Web Api控制器进行jquery ajax调用时出现问题。该网站同时具有MVC和Web API控制器。当我使用IIS Express时,它可以正常工作,但是一旦切换到本地IIS,我就会收到404错误。这是Ajax代码

  $.ajax({
    url: '/api/Application/',
    method: 'GET',
    datatype: 'json',
    contentType: 'application/json',
    data: { applicationId: applicationId },
    success: function (data) {
        //    alert('Save successful');
        applicationStatus = data;
    },
    fail: function () {
        alert('Get Application Status Failed');
    },
    complete: function () {
        deferred.resolve(applicationStatus);
    }
});

这是Web API控制器代码:

   [HttpGet]
    [Route( "API/Application" )]
    public CAApplicationStatus GetApplicationStatus( string applicationId)
    {
         ...
         return CAApplicationStatus;
    }

在IIS Express下,URL为/API/Application?applicationId=628,并且可以解决。我没有得到404并且代码执行。如果我在IIS Local下运行,我将获得相同的URL,但会收到404错误。尝试在Fiddler中使用URL时,出现相同的404错误。如果我将网站名称添加到URL中,即/CommunityAssociation/API/Application?applicationId=628,则返回数据。

如何将网站名称作为Ajax调用的一部分,以便它同时适用于IIS Express和IIS Local?

顺便说一句,如果我将ajax调用更改为/CommunityAssociation/API/Application?applicationId=628,则生成的URL为 /CommunityAssociation/GeneralInformation/Edit/CommunityAssociation?applicationId=628

/CommunityAssociation/GeneralInformation/Edit是在进行API调用之前被调用的MVC控制器的名称。

0 个答案:

没有答案