[英]Multiple Web/WCF Projects in One IIS Application
通常,针对ASP.NET或WCF的Visual Studio项目与IIS应用程序是一对一分配的。 但是,例如,如果我希望将两个WCF项目托管在IIS的同一appdomain中,该怎么办? 这意味着我将把两个Visual Studio WCF项目分配给一个IIS应用程序。
我开始尝试此方法,然后遇到第一条错误消息 。 我看过一些评论,暗示如何“不这样做”。 但就我而言,我实际上是想这样做。 我不介意这是否意味着为IIS应用程序提供三个Web配置(一个位于IIS应用程序的根目录,另外两个位于“项目”文件夹中),或者是否意味着仅具有一个IIS应用程序的Web配置。
因此,对于我的两个Visual Studio WCF项目,我以各种方式改编了web.config内容:
上面第二种选择的变体几乎奏效。 我得到的最终错误消息是:
找不到类型'Sample.ServiceGroupAlpha.ServiceAlpha',该类型作为ServiceHost指令中的Service属性值提供,或在配置元素system.serviceModel / serviceHostingEnvironment / serviceActivations中提供。
描述 :在执行当前Web请求期间发生未处理的异常。 请查看堆栈跟踪,以获取有关错误及其在代码中起源的更多信息。
异常详细信息 :System.InvalidOperationException:类型'Sample.ServiceGroupAlpha.ServiceAlpha',作为ServiceHost指令中的Service属性值提供,或在配置元素system.serviceModel / serviceHostingEnvironment / serviceActivations中提供。
这促使我查看ServiceHost指令,并(轻易地)对其进行修改:
<%@ ServiceHost Language="C#" Debug="true" Service="Sample.ServiceGroupAlpha.ServiceAlpha" CodeBehind="AlphaServices/ServiceAlpha.svc.cs" %>
...注意, CodeBehind
属性具有我添加的相对路径(虚拟目录的名称)。 好吧,这没有用,但是我不禁要以为我快要做好这项工作了。 我想知道是否有人修复了该问题,或者可以中继“正确”的方法来完成整个任务。
最终的答案可能是,在同一个IIS应用程序中不存在两个单独的Web / WCF项目。 如果真是那样,我会感到惊讶。 另一个答案可能是“将两个WCF项目合并为一个Visual Studio项目/二进制文件”。 请假设我也不想要这个答案。
现在,重点关注WCF,我认为最接近的答案是使用并让多个VS “ WCF服务库”项目全部参与单个VS“ WCF服务应用程序”。
如果我在问题中概述的方法是“按原样”运行,我怀疑上述链接可能还会有答案。 代替这个...
<%@ ServiceHost Language="C#" Debug="true" Service="WcfWebService.Service1"
CodeBehind="Service1.svc.cs" %>
我会用这样的东西...
<%@ ServiceHost Language="C#" Debug="true" Service="WcfServiceLibrary.Service1" %>
<%@ Assembly Name="WcfServiceLibrary" %>
我不再有时间或需要尝试此操作,但是上述调整似乎可以解决我在问题中提出的最后一个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.