用于ASP.NET或WCF的Visual Studio项目通常与IIS应用程序一对一分配。但是,例如,如果我想在IIS中的同一appdomain中托管两个WCF项目呢?这意味着我将两个Visual Studio WCF项目分配给单个IIS应用程序。
我开始试试这个,然后遇到了first error message。我seen comments建议“不要这样做”。但在我的情况下,我实际上希望这样做。我不介意这是否意味着IIS应用程序有三个Web配置(一个位于IIS应用程序的根目录,另外两个位于它包含的“项目”文件夹中),或者它是否意味着只有一个用于IIS应用程序的Web配置。
因此,对于我的两个Visual Studio WCF项目,我已经以各种方式改变了web.config内容:
上面第二个选项的变体几乎奏效了。我收到的最后一条错误信息是:
在ServiceHost指令中作为Service属性值提供的类型'Sample.ServiceGroupAlpha.ServiceAlpha',或在配置元素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项目/二进制文件”。请假设我不想要那个答案。
答案 0 :(得分:1)
关注WCF,此时我认为最接近的答案是使用并让多个VS "WCF Service Library" projects都参与一个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" %>
我不再有时间或需要尝试这个,但似乎上述调整将处理我在问题中提出的最后一个问题。