VS2013调试时Web API关联WCF服务项目显示为杂项文件无法调试
解决Web API项目中WCF服务类显示为“Miscellaneous Files”无法调试的问题
这种情况我之前也碰到过,明明代码就在项目目录里,却因为被归类成杂项文件导致没法正常调试,确实挺闹心的。咱们一步步来解决:
1. 修复文件的项目归属配置
如果WCF服务类已经在Web API项目目录下,但显示为“Miscellaneous Files”,大概率是项目文件(.csproj)里的文件类型配置错了:
- 右键你的Web API项目 → 选择卸载项目
- 右键已卸载的项目 → 选择编辑 [你的项目名].csproj
- 在打开的XML文件里,找到对应WCF服务类的条目,比如:
把它改成:<Content Include="YourWcfService.cs" /><Compile Include="YourWcfService.cs" /> - 保存文件,然后右键项目选择重新加载项目,这时候文件应该就会正常出现在项目结构里,而不是杂项文件中了。
如果是文件还没加入到项目中,那可以:
- 右键Web API项目 → 添加 → 现有项
- 找到你的WCF服务类文件,点击“添加”按钮旁边的小箭头,选择添加为链接(这样不会复制文件,只是将其关联到项目中)
2. 确保调试环境正常
文件归属修复后,咱们再确认调试设置:
- 右键Web API项目 → 属性 → 调试标签页
- 确认启动方式是
IIS Express或者“项目”,并且目标URL配置正确 - 给WCF服务类的方法打上断点,启动Web API调试,然后通过Web API接口调用WCF方法,看看断点是否能正常命中
- 如果断点还是没反应,试试清理解决方案(Build → Clean Solution),再重新生成整个解决方案(Build → Rebuild Solution),很多时候这类调试问题都是编译缓存导致的。
3. 更规范的项目结构建议(可选)
其实把WCF服务和Web API放在同一个项目里很容易出现这类文件归属或者调试冲突的问题,建议你把WCF服务单独拆成一个类库项目(Class Library):
- 创建一个新的类库项目,把WCF服务的相关代码移到这个项目里
- 在Web API项目中引用这个类库项目
- 调试时直接在类库项目的WCF服务方法上打断点,Web API调用时就能正常触发调试了,而且项目结构更清晰,后续维护也更方便。
内容的提问来源于stack exchange,提问作者Vetriramasamy
相关产品推荐
相关产品推荐

