IIS Express 服务于一个 .asmx 服务,但在另一个服务上总是 returns 404

IIS express serves one .asmx service, but always returns 404 on another

我将一个旧解决方案升级到 Visual Studio 2015,运行 遇到了其中一个 .asmx Web 服务的问题。我在这个解决方案中有很多,IIS 快速加载并正确运行它们,除了一个。如果我尝试在 IIS Express 中加载 .asmx URL,这项服务总是 returns 404。它在 full-blown IIS 中正确运行。

None 我在网上找到的问题解决了我的情况。详情如下:

  1. 工作和 non-working 网络服务的 web.config 文件是相同的。
  2. IIS express/.csproj 配置相同,除了端口和项目名称,以及一些不同的程序集引用。
  3. 这些项目实际上也完全相同,只有一个 .asmx 服务文件,其代码位于 .asmx.cs 和 .asmx.resx 文件之后。
  4. C:\Users[我的用户名]\IIS Express\config\applicationhost.config 没有列出任何工作或 non-working 服务,所以这不可能是区别。
  5. 检查来自 C:\Users[我的用户名]\IIS Express\TraceLogFiles[服务]\fr000040.xml 的完整跟踪以获取有关工作和 non-working 服务的请求,它们实际上是直到第 109 步,AspNetMapHandlerEnter。工作服务在第 110 步直接转到 AspNetMapHandlerLeave,其中 non-working 服务设置了一些缓存 headers,然后在第 112 步将状态代码设置为 404 并带有 "warning" 标签。

我不确定这里发生了什么或接下来我能做什么,所以任何建议将不胜感激。

我基本上是通过创建一个新项目并导入所有旧文件来解决它的。当项目无效时,IIS express 一定在某处缓存了一些东西,并通过重新创建程序集信息强制刷新。