Asp.net 调试WCF Web Api REST服务时出现问题

Asp.net 调试WCF Web Api REST服务时出现问题,asp.net,wcf-web-api,Asp.net,Wcf Web Api,因此,我创建了一个基于WCF Web API的REST服务。它在我的本地IIS上运行良好。但是,当我将其部署到外部服务器时,它不起作用 在我的global.asax.cs中,我将一个路由“MyRoute”映射到一个类MyHandler。所以无论何时我去,我都会得到一个有效的回答 但是,在部署后的外部服务器上,如果我在IE中打开,我会得到“Internet Explorer无法显示网页”(FF=“连接已重新设置-加载页面时已重置与服务器的连接”) 如果输入无效的资源名称:在外部服务器上得到的结果与

因此,我创建了一个基于WCF Web API的REST服务。它在我的本地IIS上运行良好。但是,当我将其部署到外部服务器时,它不起作用

在我的global.asax.cs中,我将一个路由“MyRoute”映射到一个类MyHandler。所以无论何时我去,我都会得到一个有效的回答

但是,在部署后的外部服务器上,如果我在IE中打开,我会得到“Internet Explorer无法显示网页”(FF=“连接已重新设置-加载页面时已重置与服务器的连接”)

如果输入无效的资源名称:在外部服务器上得到的结果与在本地得到的结果相同:“未找到端点”

此外,我还尝试从MyHandler中删除/MyRoute/MyResource映射到的方法中的所有逻辑,以查看该代码中是否存在导致请求失败的内容,但结果仍然存在

我最好的猜测是问题出在路线图上

我真的非常感谢您在我正在处理的这个特定案例中提供的帮助,或者更一般地说,在如何调试这个问题上提供的帮助。令人沮丧的是,我甚至不知道在哪里可以找到错误日志。我已经在事件查看器中查看了,但找不到任何内容,也不知道在哪里可以查看更多内容

如果有帮助的话,我很乐意发布一些代码

编辑:

好的,我解决了这个问题。这是一个路由问题。我通过在web.config中包含以下内容解决了此问题:

<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
      <modules runAllManagedModulesForAllRequests="true">
          <remove name="UrlRoutingModule" />
          <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />       
      </modules>
  </system.webServer>

我仍然不介意理解这些模块背后的机制。它们的定义是什么?服务器是否有一个配置文件来定义加载哪些模块,因为本地IIS和外部IIS之间的配置文件显然有所不同


。。。我仍然不知道日志在哪里。

在IIS上托管时,Web API使用与ASP.NET(MVC)相同的URL路由模块来选择端点。如果您是自托管,则不必如此。

在IIS上托管时,Web API使用与ASP.NET(MVC)相同的URL路由模块来选择端点。如果您是自托管,则不必这样做。

检查是否正常。确保您的网站设置正确,应用程序池设置为正确的.net版本和正确的模式。检查您的IIS日志以确保它正在到达那里。你当地的IIS是什么?你的服务器IIS呢?存在差异。比较两个IIS实例上的应用程序池,它们都是ASP.NET v4.0,托管管道模式=集成。两台服务器都是IIS 7。我在哪里可以找到IIS日志?感谢您发布答案。你怎么知道的?精神检查。确保您的网站设置正确,应用程序池设置为正确的.net版本和正确的模式。检查您的IIS日志以确保它正在到达那里。你当地的IIS是什么?你的服务器IIS呢?存在差异。比较两个IIS实例上的应用程序池,它们都是ASP.NET v4.0,托管管道模式=集成。两台服务器都是IIS 7。我在哪里可以找到IIS日志?感谢您发布答案。你怎么知道的?