.net 在多个项目中重用asmx Web服务

.net 在多个项目中重用asmx Web服务,.net,web-services,.net,Web Services,我们的系统中有多个项目希望共享同一个asmx Web服务。是否有人对如何做到这一点有任何建议/最佳做法 问题是webservices在不断变化,所以我不能只在产品中添加webreference。这也是危险的,因为在进行开发时,我希望它指向我的本地机器。我是否应该将我的web引用添加到localhost 我还应该有专门的webservices项目,而不是分散在多个项目中的asmx文件吗 谢谢我不太明白你的问题。如果您在生产环境中发布web服务,您所要做的就是在每个需要它的应用程序中添加对它的web

我们的系统中有多个项目希望共享同一个asmx Web服务。是否有人对如何做到这一点有任何建议/最佳做法

问题是webservices在不断变化,所以我不能只在产品中添加webreference。这也是危险的,因为在进行开发时,我希望它指向我的本地机器。我是否应该将我的web引用添加到localhost

我还应该有专门的webservices项目,而不是分散在多个项目中的asmx文件吗


谢谢

我不太明白你的问题。如果您在生产环境中发布web服务,您所要做的就是在每个需要它的应用程序中添加对它的web引用。使用Web服务的整个前提是使它可用——如果您只在开发环境中使用它,也许您想将其用作在GAC中分发或离开的标准C*yDLL?

< P> Web服务的一个要点是,它们是可重用的,所以你在任何地方都可以使用它是对的

您的问题有点不清楚到底是什么问题,但您应该能够从任何具有网络访问权限的应用程序中使用web服务

-编辑-

通常认为最好的做法是有专门的web服务项目。您可以有多个web服务项目,如何分解这些项目取决于您和您的业务/技术需求


这应该解决你的主要问题。您有一个本地web服务项目,以及使用它的本地项目。您可以根据需要将这些项目中的一个或两个部署到生产环境中。

您所需要的只是为跨多个团队或部门使用这些web服务创建一个良好的流程所有权和文档。在SOA世界中,您必须创建服务注册中心,这样可以方便地查看可用的服务并在需要时重用它们。

在进行开发时,只需将web引用指向您的本地计算机并在本地运行web服务即可。我真的看不出有什么问题。

如果我正确理解你的问题,你会想要一个开发Web服务和一个生产Web服务。生产实例是上次调试/检查的生成。调试实例是您正在处理的当前生成

我推荐的实现方法是拥有一个dev子域,这样您就可以同时拥有两个web服务,例如和。这两个子域在IIS中都是不同的站点。在您的代码中,您将把web引用绑定到dev子域,因为这个域将是您用来更新web引用的域(如果更改参数)。然后使用“#if not debug”将web服务对象url更改为www站点的生产(发布)代码

这样,您就可以根据调试服务进行构建,直到您满意为止。此时,您可以更新软件(如果参数已更改),并将新dll上载到发布站点


我会将Web服务保留在一个单独的项目中,以保持部署的程序集的简单。

您应该创建一个类库项目,并在那里定义您的Web服务。将该项目引用到web应用程序中,然后在webservice asmx文件中将其指向webservice类。

在生产环境中,必须设置正确的URL才能使其正常工作。只需从配置文件读取URL并在运行时进行设置。您能告诉我一些建议使用单独的web服务项目的内容吗?这是任何N层体系结构中的标准设置,您希望将数据与业务层和表示层分离。如果你谷歌N层和web服务,你会发现很多例子。