Visual studio 2010 通过Fiddler2发布到WebApi

Visual studio 2010 通过Fiddler2发布到WebApi,visual-studio-2010,post,asp.net-web-api,localhost,fiddler,Visual Studio 2010,Post,Asp.net Web Api,Localhost,Fiddler,我正在翻阅一本书,以了解更多关于MVC的WebAPI控制器的信息,并在一个问题上陷入了困境。我试图使用Fiddler在VisualStudio2010中发布我的WebAPI控制器,但无法连接到我的控制器 我在书中使用了以下类: public class Employee { public int Id { get; set; } public string FirstName { get; set; } public string

我正在翻阅一本书,以了解更多关于MVC的WebAPI控制器的信息,并在一个问题上陷入了困境。我试图使用Fiddler在VisualStudio2010中发布我的WebAPI控制器,但无法连接到我的控制器

我在书中使用了以下类:

public class Employee {
    public int      Id          { get; set; }
    public string   FirstName   { get; set; }
    public string   LastName    { get; set; }
    public int      Department  { get; set; }
}
我的WebApi控制器POST方法,在第一个变量maxId=。。。行:

我可以发布一个直通Fiddler2,而无需重新运行我从Chrome跟踪的请求:

然后,我尝试调整标题以运行POST,并在使用localhost作为我的服务器时收到404:

根据许多建议,我尝试将服务器更改为localhost.,但收到了相同的404:

我最后一次尝试将localhost更改为我的计算机名,但在它尝试发布一秒钟左右后,收到了502,这与前两次请求的内容相同,但仅使用上述url更改:

根据书中和网上的一些其他建议,在开始尝试这些文章之前,我还在节点中的Web.config中添加了以下内容。它位于节点之后

知道我遗漏了什么吗?到目前为止,在我所有的研究中,它是最接近于帮助我的,但我已经尝试了唯一答案的建议,甚至连视频都没有给我进一步的见解


在这一点上,如果它的一部分与Visual Studio 2010有关,我不会感到惊讶,除非我遗漏了一些非常简单的内容。

您确定定义了默认路由吗? 应该是这样的:

routes.MapHttpRoute(
    name: "API Default",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional }
);

您的端口看起来像.NET调试器与IIS Express一起使用的端口,是否已停止调试?您可能希望直接使用IIS设置它,以便它始终存在。右键单击web项目,查看属性,然后查看“web”部分。是的,我只是在使用默认调试器。我听从了您的建议,从使用VisualStudioDevelopmentServer切换到使用本地IISWeb服务器,并将那里的一切都保留为默认设置。这就是你所指的吗?这解决了你的问题吗?我认为,当解决方案打开时,应该自动向本地IIS注册您的应用程序。基本上,我的意图是使用IIS Express,如果通常只有在Visual Studio绑定到它时才可用,那么如果停止调试,您将收到404,因为不再有任何注册到该端点的内容。使用本地IIS时,它总是可用的,当您需要调试时,Visual Studio将自动绑定到w3p.exe进程。不,我会在尝试使用Fiddler时让应用程序保持运行。我知道如果我不这样做的话,它会立刻失败。我尝试了上面所述的设置,在尝试在不进行调试的情况下运行时,我的浏览器500出现错误-在ISAPI筛选器C:\Windows\Microsoft.NET\Framework\v4.0.30319\\aspnet\u filter.dll上调用LoadLibraryEx时发生内部服务器错误。我没有触及其他设置。您不需要对代理设置执行任何操作即可使用Fiddler的Composer。您不需要使用localhost。或机器名称;这些都是在某些情况下代理所需的黑客,但在这种情况下您根本不使用代理。WebAPI不要求您有某种注释来正确地将POST路由到给定的方法吗?是的,我在我的WebApiConfig so config.Routes.MapHttpRoute中定义了它,而不仅仅是Routes.MapHttpRoute,如果我没有这样做,那么直接从浏览器调用和从Fiddler调用第一张图片也会失败。不是这样。您可以有多个路由,并且可以重写保留名称的默认路由。不管怎样,您使用的是哪种Web API版本?是的,我知道您可以定义多个路由,但是您共享的路由是我唯一拥有的路由。我使用的Web API是MVC4的一部分。
<system.net>
  <defaultProxy>
    <proxy usesystemdefault="False" bypassonlocal="True" proxyaddress="http://127.0.0.1:8888"/>
  </defaultProxy>
</system.net>
routes.MapHttpRoute(
    name: "API Default",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional }
);