【问题标题】:Add reference to service within same project在同一项目中添加对服务的引用
【发布时间】:2012-10-27 09:15:21
【问题描述】:

我想知道是否可以在同一个项目(Web 应用程序)中添加对 Web 服务的引用,即我在定义服务的同一个项目中添加引用。

之所以这样做是因为

  • 托管服务变得更容易(托管网络应用时自动托管)。
  • 调用服务是动态完成的,即在运行时(从数据库)获取服务 url,并调用该特定服务上的方法。 (这是一个托管在许多域上的 Web 应用程序。每个应用程序都知道其他应用程序的服务 url(存储在 db 中的 url)。因为我有对服务的引用,我可以在运行时通过更新 @987654322 来更改 url @ 并调用它。)

另外,我不确定这是否是解决方法。我看到很多人建议使用 WCF 而不是 Web 服务,但我不知道如何使用 WCF 完成同样的事情。

在 SO - Add Service Reference to WCF Service within Same Project 上已经有一个关于此的问题,但我认为它不适用于我的情况。

【问题讨论】:

    标签: asp.net .net wcf web-services


    【解决方案1】:

    如果该服务已经在您的项目中,您可以直接使用它而无需网络服务代理。

    毕竟,Web 服务用于将您的应用程序功能暴露给外部世界,而不是暴露给系统的其他部分。

    【讨论】:

    • 就像我说的,服务 url 是在运行时获取的(它可能(并且大部分将)指向另一个 Web 应用程序)并相应地调用。所以实际上,我正在访问该网络应用程序的功能/数据。
    • 最好将您的服务移动到解决方案中的单独项目中。然后你可以发现和引用服务没问题
    • 我可以这样做,但这意味着每次我托管 Web 应用程序的新副本时,我还必须托管 Web 服务。如果我将 Web 服务与 Web 应用程序保存在同一个项目中,则可以节省这项工作。无论如何,为什么这种做法不好..?
    • 不确定这是否是不好的做法,但它没有意义。如果您的服务可能/很可能托管在不同的服务器中,那么通过将其作为单独的项目来反映在您的应用程序解决方案中是有意义的。在托管方面,它并没有太大区别,因为您可以将它放在同一个 IIS 应用程序下的不同虚拟文件夹中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    • 2018-06-08
    • 1970-01-01
    • 1970-01-01
    • 2014-04-14
    • 1970-01-01
    相关资源
    最近更新 更多