【发布时间】:2015-06-08 16:27:46
【问题描述】:
我刚收到一台新的开发笔记本电脑,现在我的 WCF 服务无法在新笔记本电脑上运行。
Windows 7 企业版
IIS 7.5.7600.16385
已安装 Windows 功能:
- 互联网信息服务
- 网络管理工具
- IIS 6 管理兼容性
- IIS 管理控制台
- IIS 管理脚本和工具
- IIS 管理服务
- 万维网服务
- 应用程序开发功能(所有子功能)
- 常见的 HTTP 功能
- 默认文档
- 目录浏览
- HTTP 错误
- HTTP 重定向
- 静态内容(所有子功能)
- 运行状况和诊断(所有子功能)
- 性能特性(所有子特性)
- 安全性(所有子功能)
- Internet 信息服务可托管 Web 核心
- Microsoft .NET Framework 3.5.1(所有子功能)
- Windows 进程激活服务(所有子功能)
我放弃了一个简单的“Hello World!” index.html 文件位于 WCF 服务应用程序的根目录。我能够提供该 .html 文件。我的服务位于名为“Hosts”的子目录下。我还在该子目录下放置了一个简单的 index.html 文件——我也可以提供该文件。不过,我无法提供任何 .svc 文件。
http://localhost/mywcfapplication/Hosts/IncidentService.svc
匿名身份验证 -- 选择“应用程序池身份”
服务在它们自己的应用程序池中运行。关于应用程序池:
- .NET 框架版本:v2.0
- 启用 32 位应用程序:false
- 托管管道模式:经典
- 身份:ApplicationPoolIdentity
我最近在我们的测试环境中的新 Windows Server 2012 R2 Web 服务器上设置了这些服务(旧的测试服务器已停用)。在服务器上,我必须授予应用程序池用户对文件系统中目录 (IIS_IUSRS\apppoolname) 的权限,但我的笔记本电脑似乎不喜欢这样。
当我尝试浏览此应用程序下的任何 .svc 文件时,我收到 404.0 错误。 IIS 告诉我最可能的原因是: • Web 服务器上不存在指定的目录或文件。 • URL 包含印刷错误。 • 自定义过滤器或模块,例如 URLScan,限制对文件的访问。
我已经检查并重新检查了 URL,我可以提供 .html 文件。我验证了 .svc 文件确实存在。我不知所措。我忽略了什么?
研究:
IIS7.5 WCF Service - HTTP Error 401.3 (Even after adding IIS_IUSRS)
Windows 7 IIS7.5 and asp application Error HTTP 404.0 - Not Found
更新:
6/8/15 - 我将IIS AppPool\AppPoolName 添加到 IIS_IUSRS 组。没有变化。
6/9/15 -
- 我跑了
servicemodelreg -i。没有变化。 -
https://msdn.microsoft.com/en-us/library/ms752252(v=vs.90).aspx
- 因为我越来越绝望,我跑了
aspnet_regiis –i –enable然后"%WINDIR%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -r - 我还按照“验证 svc 文件类型在 IIS7.0 中正确映射”列出的步骤进行操作
- 因为我越来越绝望,我跑了
-
HTTP 404 when accessing .svc file in IIS -- “我们遇到了类似的问题,并且 SVC 处理程序已经正确安装。我们的问题是 ExtensionlessUrl 处理程序在请求到达 SVC 处理程序之前处理请求。要检查这一点 - 在 Web 服务器的 IIS 管理器中的处理程序映射中级别,按顺序查看处理程序列表(这是右侧的一个选项)。如果各种 ExtensionlessUrl 处理程序出现在 SVC 处理程序上方,则重复将它们向下移动,直到它们位于底部。
- 我确认无扩展处理程序位于底部。
- 根据另一个论坛帖子的建议,我为 .svc 添加了 MIME 类型。没有变化。
2015 年 6 月 15 日 - - 日志文件:u_ex150615.log
【问题讨论】:
-
@Tim,不,我没有尝试过 ServiceModel 注册工具。我刚才跑了。我的服务仍在抛出 404.0.0。昨天下午晚些时候,我注意到我在测试服务器上的 WCF 服务也无法正常工作。我可以浏览它们并加载“您已创建服务”页面。但是,如果我尝试通过应用程序调用 Web 方法,则会收到 404.0 错误。我以前从未在部署 WCF 服务时遇到过这么大的麻烦。
-
这里的问题完全相同。本地开发 IIS 7.5 和服务器 IIS 6。行为相同。
-
我不知道为什么这是个问题,但我遇到了完全相同的情况并修复了从端点服务标签中删除地址属性的问题。在这里看到:social.msdn.microsoft.com/Forums/vstudio/en-US/…