我正在使用WebHttpBinding开发REST服务。
我的服务中的一切都很完美,但在运行时它会提供Error Endpoint not Found
。
web.config文件是这样的:
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0"/>
</system.web>
<system.serviceModel>
<services>
<service name="Service">
<endpoint address="http://localhost:10492/Service.svc" binding="webHttpBinding" contract="IService" behaviorConfiguration="webby"/>
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="webby">
<webHttp helpEnabled="true"/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information, set the value below to false before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<!--
To browse web app root directory during debugging, set the value below to true.
Set to false before deployment to avoid disclosing web app folder information.
-->
<directoryBrowse enabled="true"/>
</system.webServer>
</configuration>
在地址中我也尝试过这样:
<endpoint address="" binding="webHttpBinding" contract="IService" behaviorConfiguration="webby"/>
但它仍无效。
答案 0 :(得分:1)
这是一个很好的链接,可以帮助您入门:http://weblogs.asp.net/kiyoshi/archive/2008/10/08/wcf-using-webhttpbinding-for-rest-services.aspx
您尝试连接到Web服务的地址是什么? (您是否尝试导航到Web浏览器中的地址,以及您键入的URL?)
[编辑]
由于您在Web应用程序中托管,IIS(或您正在使用的任何Web服务器)将期望服务存在服务描述符文件。您不能只在web.config中创建一个URI,并在IIS中托管它,而在文件系统上没有关联的“服务”文件(这是您的Service1.svc文件)。
这是在Internet Information Services中托管WCF服务的细微差别 - 如果您正在阅读为自托管方案设计的教程,则很容易忘记此步骤。
确保您的网站中有一个名为“Service1.svc”的文件,它应包含以下内容:
<%@ServiceHost Language="C#" Service="MyNamespace.Service1" Factory="System.ServiceModel.Activation.WebServiceHostFactory" %>
以下是在IIS中托管REST服务的教程:http://saravananarumugam.wordpress.com/2011/03/04/simple-rest-implementation-with-webhttpbinding/
另一个引起我注意的问题是,您定义的端点地址(“http:// localhost:10492 / Service.svc”)不符合REST约定。我不指望这会是你的问题,但这是一个问题。