无法使Web API应用程序在Windows 2008服务器上运行

时间:2012-12-26 13:28:46

标签: asp.net-mvc asp.net-web-api windows-server-2008 publish

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

http://localhost/Application/api/Controller 

我得到了我期待的答案。

所以我继续前进到下一步:将其部署到另一台服务器,以便办公室中的其他人可以访问它。我们使用的服务器运行Windows 2008服务器。我所做的只是复制Visual Studio 2012中由publish命令生成的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吗?

提前致谢。

1 个答案:

答案 0 :(得分:6)

试试这个:

<system.webServer>
    .....
    <modules runAllManagedModulesForAllRequests="true" />
    .....
</system.webServer>