2016-04-19 29 views
1

我将旧解决方案升级到Visual Studio 2015,并且遇到了一个.asmx Web服务问题。我在这个解决方案中有一些他们,并且IIS express加载并正确运行它们,除了一个。如果我尝试在IIS Express中加载.asmx URL,此服务总是返回404。它在完整的IIS中正确运行。IIS express服务一个.asmx服务,但总是在另一个服务器上返回404

我在网上发现的问题都没有解决我的情况。以下是详细信息:

  1. 工作和非工作Web服务的web.config文件是相同的。
  2. IIS Express/.csproj配置与端口和项目名称以及几个不同的程序集引用除外。
  3. 这些项目几乎完全相同,只有一个.asmx服务文件,代码位于.asmx.cs和.asmx.resx文件的后面。
  4. C:\ Users [我的用户名] \ IIS Express \ config \ applicationhost.config没有列出任何工作或非工作服务,因此不能是差异。
  5. 检查来自C:\ Users [我的用户名] \ IIS Express \ TraceLogFiles [service] \ fr000040.xml的完整跟踪,它们与工作和非工作服务请求相同,直到步骤109,AspNetMapHandlerEnter 。在步骤110,工作服务转到AspNetMapHandlerLeave,在那里非工作服务设置一些缓存标题,然后在步骤112将状态代码设置为404,其上带有“警告”标签。

我不确定接下来会发生什么,或者我可以做什么,所以任何建议都将不胜感激。

+0

我通常只在部署期间复制bin文件,然后我的ashx/asmx不会加载,因为服务器上不存在这些文件,因此请检查以确保占位符文件存在。只是一个想法,因为我遇到了。 – Enkode

+0

2是可疑的。你必须更多地展示你在这一点上提到的差异,以便我们看到它们彼此之间的不同。 –

+0

工作服务没有将.asmx标记为“不要复制”,所以这也是我为非工作服务设置的。告诉它复制仍然无法正常工作。 – naasking

回答

0

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

相关问题