404尝试访问部署到IIS 7.5的Web API 2服务时出错

时间:2015-05-19 10:40:00

标签: asp.net web-services rest iis-7.5 asp.net-web-api2

我使用REST框架创建了一个独立的Web API 2服务。该项目不包含UI,因为该服务将在另一个域的其他地方使用。

当在本地运行时,该服务完全正常,并且在使用浏览器内REST客户端进行测试时,所有HTTP方法都按预期工作/返回。

但是,在发布服务并部署到IIS 7.5之后,我无法访问REST客户端中任何服务路由的任何资源。我不断收到404 - Resource Not Found错误。

我已经完成的事情:

在我的Web.Config中添加了以下内容:

<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true" />
        <handlers>
            <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
            <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode,runtimeVersionv4.0" />
        </handlers>
  </system.webServer>

确保AppPool是正确的(据我所知这是正确的): enter image description here

了解我的发布配置文件的发布配置可能也很有用:

  • 发布方法:文件系统
  • 配置:调试
  • 在发布之前删除所有现有文件:否
  • 发布时预编译:否
  • 从App_Data文件夹中排除文件:是

IIS绑定:

  • 类型:HTTP
  • 主机名:www.MySubdomain.Domain.co.uk
  • 港口:80
  • IP地址:*

我尝试在REST客户端访问我的服务的示例网址如下:

  • www.MySubDomain.Domain.co.uk/api/ControllerName/1(GET)

  • (使用api/ControllerName/1

  • 在本地运行正常

任何额外的尝试都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

原来我的绑定有些不正确!当我在子域上托管它时,我在绑定中不需要www.。删除这4个字符后,工作正常!