5

我是 Web API 应用程序的新手。我创建了我的第一个应用程序,它只有一个简单的控制器,只有一个返回列表的 Get() 方法。在我的电脑上它工作正常。即使在我发布解决方案并通过我的 IIS 7.5 访问它之后,结果也正常:我访问

http://localhost/Application/api/Controller 

我得到了我期望的答案。

所以我继续下一步:将它部署到另一台服务器,以便我办公室的其他人可以访问它。我们使用的服务器运行 Windows 2008 服务器。我所做的只是简单地复制由 Visual Studio 2012 中的发布命令生成的 Publish 文件夹,并将其粘贴到服务器计算机的 inetpub\wwwroot 文件夹中。然后,我访问了在服务器上运行的 IIS 7.5,并使用 .NET 4.0 应用程序池创建了一个新应用程序,使用 Publish 文件夹作为其物理路径(与我在 PC 中将其发布到 IIS 的步骤完全相同)。

问题:当我尝试访问服务器机器(运行 Windows 2008 服务器)中的应用程序时,我收到 404 错误。似乎它试图找到一个物理路径 Application\api\Controller,像我的机器一样在逻辑上解决它。

我确实尝试了我在网上找到的所有不同的解决方案:

  • 我确实在 IIS 中的应用程序的映射配置下启用了 ExtensionlessUrl-Integrated-4.0 中的所有动词。
  • 我确实添加了 WebApiConfig.Register(GlobalConfiguration.Configuration); 在我的全球 asax 中。

我注意到我的机器安装了 .NET Framework 4.5,而服务器机器只有 4.0 框架(客户端和扩展)。但即使在编译了针对 4.0 框架的应用程序后,我也会遇到同样的错误。

我的 bin 目录中唯一的 MVC .dll 是 System.Web.Mvc.dll ...我需要任何其他 DLL 吗?

提前致谢。

4

1 回答 1

6

尝试这个:

<system.webServer>
    .....
    <modules runAllManagedModulesForAllRequests="true" />
    .....
</system.webServer>
于 2013-08-07T23:11:26.150 回答