我有一个WCF服务,我想在IIS 7.5中托管。我的设置: .svc文件的文件夹的物理路径是:C:\ inetpub \ wwwroot \ SmartSolution \ Services \ Services \ ContainerManagementService.svc 我的二进制文件位于C:\ inetpub \ wwwroot \ SmartSolution \ Services \ bin
我在IIS中为两个Services文件夹创建了一个Web应用程序。
以下是WCF端点的配置文件:
<service behaviorConfiguration="MyNamespace.ContainerManagementServiceBehavior"
name="MyNamespace.ContainerManagementService">
<endpoint address="" binding="basicHttpBinding"
name="ContainerManagementbasicHttpEndpoint" contract="MyNamespace.IContainer"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
<behaviors>
<behavior name="MyNamespace.ContainerManagementServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</behaviors>
这是我的.svc文件makrkup:
<%@ ServiceHost Language="C#" Debug="true" Service="MyNamespace.ContainerManagementService" CodeBehind="ContainerManagementService.svc.cs" %>
当我尝试导航到:http://localhost/SmartSolution/Services/Services/ContainerManagementService.svc时,会显示以下错误:
无法找到作为ServiceHost指令中的Service属性值提供的类型“MyNamespace.ContainerManagementService”。
如何让服务正常运行。谢谢!
答案 0 :(得分:0)
如果您的网站已预编译且您已在MyNamespace.ContainerManagementService
文件夹中包含二进制文件(包含bin
),则无需指定CodeBehind
属性:
<%@ ServiceHost
Language="C#"
Debug="true"
Service="MyNamespace.ContainerManagementService"
%>
另一方面,如果您的网站未进行预编译,并且您已提供源代码,则此源代码必须位于特殊的~/App_Code
文件夹中。
答案 1 :(得分:0)
IIS希望您的bin文件夹与.svc文件位于同一文件夹中,但看起来您已将其放在父文件夹中。
此外,您应该只需要IIS中指定的一个应用程序。