在SharePoint中部署WCF服务而不修改Web.Config?

在SharePoint中部署WCF服务而不修改Web.Config?,sharepoint,iis,wcf,Sharepoint,Iis,Wcf,我正在探索通过SharePoint功能将WCF服务部署到SharePoint场/WebApplication/Site/Web的可能性,而无需使用SPWebConfigModification类或手动编辑Web.config。已经应用了,因此它没有考虑到这一点。到目前为止,我所能做的最远的工作是创建一个自定义ServiceHostFactory类,我正在.svc文件中引用该类,如下所示: <%@ ServiceHost Language="C#" Debug="true" Service=

我正在探索通过SharePoint功能将WCF服务部署到SharePoint场/WebApplication/Site/Web的可能性,而无需使用SPWebConfigModification类或手动编辑Web.config。已经应用了,因此它没有考虑到这一点。到目前为止,我所能做的最远的工作是创建一个自定义ServiceHostFactory类,我正在.svc文件中引用该类,如下所示:

<%@ ServiceHost Language="C#" Debug="true" Service="Company.Namespace.ServiceClass" Factory="Company.Namespace.CustomServiceHostFactory" %>
<%@ Assembly Name="Company.WCFCustomLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0000000000000000" %>


我正在我的自定义服务主机工厂中重写
ServiceHost CreateServiceHost(类型serviceType,Uri[]baseAddresses)
,并在其中应用各种绑定/端点配置。但我遇到的问题是,当我在web浏览器中查询.svc文件时,甚至没有调用该方法。我的印象是,只要我在web浏览器中调用.svc,IIS就会尝试使用我指定的ServiceHostFactory创建ServiceHost。我完全错了吗?以前有没有人尝试过这样做?如果是这样的话,我还缺什么吗?是否可以完全以编程方式设置ServiceHost,或者我仍然需要在web.config中处理
标记?

可能不是您想要的答案,但我已经详细介绍了如何在SharePoint Depth wiki上的SharePoint中具有类似WCF的功能。我详细介绍了使用HttpHandler代替WCF的方法,但我也有一些关于SharePoint中完整WCF的链接

在HttpHandler方法中,不需要修改根web.config文件,但需要在自己的文件夹中添加一个web.config文件


我希望这能提供一些见解。

您可以做您想做的事情,让WCF从任何您喜欢的地方读取配置。我构建了一次,以允许每个WCF服务从自己的配置文件中读取。适用于测试和独立部署。该技术涉及重写该方法

有一些额外的细节和完整的源代码

另一种普遍感兴趣的方法可能是让WCF服务从某个地方的集中存储读取其配置—数据库、远程文件服务器等。您可以使用相同的基本CustomServiceHost,只需修改一个方法以从数据库加载,或者其他任何方法



ps:我怀疑IIS消失的原因是WCF ServiceHost中发生了异常

在web浏览器中查询
.svc
文件时会得到什么?我会得到一个空白的HTML页面。当我点击refresh时,它会显示“服务不可用”。好的,看起来IIS神奇地关闭了自己,这解释了为什么我会收到“服务不可用”消息。我的CreateServiceHost方法现在实际上正在被调用,但当我导航到时,仍然会得到一个空白的html页面,这意味着我仍然没有以编程方式正确配置所有绑定/端点。Juval book别让我失望!哦,至少这是进步。如果您遇到任何进一步的问题,请将您的编程配置代码发布在此处,我们将为您挑选。:-)如果我创建一个自定义配置文件并将其部署到功能的文件夹中,上述方法可能会奏效,但理想情况下,我希望完全避免使用配置文件,您可以使用相同的想法,从任何地方获得您的配置。感谢您的链接,但我目前正在尝试在SP中实现全面的WCF功能。目前,这并非易事。为什么SP必须把所有的东西都变成一个方形的钉子?