2012-12-26 32 views
4

我是Web API应用程序的新手。我只用一个简单的Controller创建了我的第一个应用程序,只有一个Get()方法返回一个List。 在我的电脑,它工作正常。我发布的解决方案,并通过我的IIS 7.5访问它即使经过,结果都ok:我访问无法使WebAPI应用程序在Windows 2008服务器上工作

http://localhost/Application/api/Controller 

,我得到我期望的答案。

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

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

我曾尝试所有不同的解决方案我在网上发现:

  • 我没有能够在ExtensionlessUrl集成 - 4.0在IIS应用程序映射配置下的所有动词。
  • 我没有添加WebApiConfig.Register(GlobalConfiguration.Configuration);在我的全球asax。

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

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

在此先感谢。

+0

您可能需要的System.Net.Http DLL了。 – Nick

+0

是的,我有过... =)我想说的是,我没有任何其他的MVC特定的DLL那里......(我想System.Net.Http不仅用于MVC) – Piscies

回答

5

试试这个:

<system.webServer> 
    ..... 
    <modules runAllManagedModulesForAllRequests="true" /> 
    ..... 
</system.webServer> 
相关问题