在 IIS Express 上本地引用 WCF 服务 运行 不公开方法

reference to a WCF service running locally on IIS Express does not expose methods

我最近继承了一些 WCF Web 服务,这些服务被配置为在 Web 项目中使用 ASHX 处理程序以 http://example.com/Services/V1/MyService.svc 的形式呈现 .SVC 文件。服务在开发和生产环境中 运行ning,出现 WSDL,在新项目中添加服务引用允许我调用 MyMethod 并获得完全符合预期的响应。

错误处理和日志记录不是很好,所以我尝试 运行 本地站点并添加对 http://localhost:1234/Services/V1/MyService.svc 的服务引用。我可以在 URL 处加载服务并看到与生产环境相同的 WSDL,但是当我尝试使用类似于下面的代码来调用我的方法时,客户端和响应对象都无法识别当我连接到生产环境时。

using MyServiceTestProject.LOCAL_MyService;
//...
MyServiceClient test = new MyServiceClient();

MyServiceMethodResponse r = test.MyServiceMethod("arguments!");

我能够准确地看到 MyCustomObject 类 中的一个,它仅在我的服务中声明并且在我停止使用服务引用时停止可用,所以我知道即使它是不是人们所期望的一切。

当我比较本地和 dev/prod 环境时,Web.Config 文件的相关部分是相同的,本地 运行ning 的项目是部署到的项目那些其他的盒子。

有没有人遇到过这种行为运行使用 IIS Express 在本地创建服务项目?

编辑:。 prod、dev 和本地环境之间的端点不同,在每个环境中使用相同的代码。感谢您指出我最初忽略的细节。

在发布问题之前断断续续地尝试解决这个问题后,删除并重新添加服务引用并重新启动我的 IDE 和我的计算机都无济于事,我发现右键单击服务名称并选择 "Update Service Reference"(在下面的屏幕截图中以红色圈出)最终将解决我所看到的问题,尽管 VS 有时需要我执行多次更新才能正常工作。

如果不执行更新,我尝试删除并重新添加服务或重新启动 Visual Studio/rebooting 我的 PC 都无助于解决该问题。我不确定是否是关于 IIS Express 的问题导致第一次没有使用所有必要数据创建服务引用,或者它是否是我本地环境中的一百个其他变量之一,但至少有一个可靠的当它确实失败时让它工作的方法。