【问题标题】:new IIS server; WCF service; methods show up, Classes do not新的 IIS 服务器; WCF 服务;方法出现,类没有
【发布时间】:2020-04-27 08:36:49
【问题描述】:

我有一个 WCF 服务在我们的旧 IIS 服务器上运行良好。该服务具有公开的方法和类,所有这些都使用[ServiceContract]、[OperationContract] 和[DataContract] 正确设置。该服务在旧服务器上运行良好。该服务仅在我们的本地 Intranet 上可见。

我们正在尝试移动到新的 IIS 服务器。其他 ASP.NET 网站在新的 IIS 服务器上运行。现在,在客户端应用程序代码中,如果我尝试“添加服务引用”,我能够成功地将服务引用添加到新的 IIS 服务器。问题是,虽然这些方法有效,但来自 WCF 服务的类在客户端应用程序上不可见。如果我采用现有服务引用并在 app.config 文件中将 url 更改为新服务器,则一切正常。我查看了 WSDL 文件,其中都有类。

我已经检查了两台服务器上的“角色和功能”,并没有发现相关项目有任何差异。我做错了什么?

【问题讨论】:

  • 您能详细说明一下这个问题吗?我对你的问题感到困惑。如果您使用旧的 IIS Web 服务器添加服务引用。它是否正常工作(某些类是可见的)?我怀疑 WCF 服务是一种 Restful 风格,默认情况下客户端在添加服务引用时不会生成任何内容。不知道是不是你的问题。请详细说明问题。

标签: c# wcf iis


【解决方案1】:

好的,上面评论中提供的链接实际上解决了它。谢谢莱克斯李

stackoverflow.com/questions/3000209/service-reference-not-generating-client-types

当我接受亚伯拉罕钱的建议并尝试向旧服务器添加新服务引用时,它与新服务器做同样的事情,没有显示类。这告诉我这是一个视觉工作室问题。然后我尝试了 Lex Li 的建议,这解决了我的问题。作为修复的简短回顾:

  1. 添加新服务引用时,转到“高级...”
  2. 默认情况下,选择“在所有引用的程序集中重用类型”。将此更改为“在指定的引用程序集中重用类型”
  3. 在该选项下方的框中,选中“mscorlib”。
  4. 照常完成添加服务引用。

一旦我这样做了,它就解决了我的问题。感谢大家的帮助!

【讨论】:

    猜你喜欢
    • 2011-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多