Wcf 如何在同一台计算机上调试多个Sharepoint services?

Wcf 如何在同一台计算机上调试多个Sharepoint services?,wcf,web-services,sharepoint-2010,Wcf,Web Services,Sharepoint 2010,我需要调试为Sharepoint 2010部署的Sharepoint WCF服务。但是,同事需要调试部署在同一台物理计算机上的另一个Sharepoint服务。如果我们同时使用VisualStudio调试器进行调试,会发生奇怪的事情。例如,他的调试器将在我设置的断点处中断,或者我看到他的代码引发的异常。请注意,我们正在不同的解决方案中调试不同的服务。从我到目前为止收集的信息来看,这种行为是这样的,因为每个应用程序池只有一个w3wp进程,这两个VisualStudio调试器实例都附加到该进程。 所以

我需要调试为Sharepoint 2010部署的Sharepoint WCF服务。但是,同事需要调试部署在同一台物理计算机上的另一个Sharepoint服务。如果我们同时使用VisualStudio调试器进行调试,会发生奇怪的事情。例如,他的调试器将在我设置的断点处中断,或者我看到他的代码引发的异常。请注意,我们正在不同的解决方案中调试不同的服务。从我到目前为止收集的信息来看,这种行为是这样的,因为每个应用程序池只有一个w3wp进程,这两个VisualStudio调试器实例都附加到该进程。 所以我想我应该试着在另一个应用程序池中运行我的服务,以获得一个不同的w3wp.exe来连接。以下是我的尝试,但我不确定,如果我的尝试有任何意义,请澄清:

IIS Manager显示有两个不同的Sharepoint应用程序池(不包括用于中央管理的池)和每个池的一个站点。因此,我尝试通过将部署位置设置为其他站点的URL,使用其他应用程序池部署我的服务。但是,服务的虚拟_vti_bin目录仍然映射到相同的物理目录
..\Web服务器扩展\14\ISAPI\
。从VisualStudio部署可以工作,但获取ServiceReference则不行。试图打开
/\u vti\u bin/MyService.svc/MEX
会显示一个错误页面,告诉我已经有一个绑定实例与URL关联。因此,我想这不是实现这一点的方法,或者根本不可能以这种方式“隔离”服务。我对IIS管理器或Sharepoint管理中心设置的尝试和错误非常犹豫,因为我觉得我不知道如何避免把事情搞砸


有人能告诉我怎么解决这个问题吗

在Visual Studio中部署时指定的URL可能会产生误导。如果您有一个沙盒解决方案,它将部署到此位置。如果您有一个服务器场解决方案,它将集中部署,并使用URL确定要回收的应用程序池。如果解决方案中有特定于web应用程序的设置(即安全控件),则这些设置将应用于承载URL的web应用程序

整个农场的每个场地都可以使用vti箱;按原样布局。由于一个服务将通过多个URL(每个站点一个)公开,SharePoint团队创建了自定义工厂类来实现这一点。查看一个内置的svc文件,您将看到它使用了一个特殊的工厂类。在svc文件中使用此选项可在所有站点中公开服务


至于调试,让多个开发人员使用同一台机器从来都不是一个好主意。如果您真的想这样做,我建议使用两个具有不同应用程序池的web应用程序。这样,每个开发人员都有自己的流程可附加到。如果您对应用程序池使用不同的帐户,则可以更容易地在“附加进程”对话框中找到正确的帐户。

我知道在同一台计算机上进行调试不是最佳的,但目前我们只有一台设置为承载Sharepoint的可用计算机。顺便说一句,我们的两个解决方案都是场解决方案。我仔细检查了我们是否在不同的应用程序池上进行调试,以及调试器是否真正连接到不同的w3wp.exe进程。在重新部署服务时,也会回收正确的应用程序池,但问题仍然存在。