问题描述
对不起
WCF REST服务在json视图中提供完整的表数据,但是当我尝试获取记录GetById时。
它给出了endpoint not fuond错误
请告诉我如何解决它。我是WCF服务的新手
这是web.config
Excuse me
WCF REST Service giving full table data in json view but when i try to get record GetById.
It is giving "endpoint not fuond" error
Please tell me how to resolve it. I am new to WCF Services
Here is web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
</system.web>
<system.serviceModel>
<services>
<service name="WCFDB.ServiceContract">
<endpoint address="" behaviorConfiguration="restfulBehavior" binding="webHttpBinding" bindingConfiguration="" contract="WCFDB.IServiceContract"></endpoint>
<host>
<baseAddresses>
<add baseAddress="http://localhost/ServiceContract.svc"/>
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="restfulBehavior">
<webHttp helpEnabled="true"/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information, set the values below to false before deployment -->
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="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>
<protocolMapping>
<add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" 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>
<connectionStrings>
<add name="tawaseelEntities" connectionString="metadata=res://*/NewsModel.csdl|res://*/NewsModel.ssdl|res://*/NewsModel.msl;provider=System.Data.SqlClient;provider connection string="data source=.;initial catalog=tawaseel;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
</entityFramework>
</configuration>
这里是IServiceContract.cs
and here is IServiceContract.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
namespace WCFDB
{
[ServiceContract]
public interface IServiceContract
{
[OperationContract]
[WebGet (ResponseFormat=WebMessageFormat.Json)]
List<news> GetNewsList();
[OperationContract]
//[WebGet]
[WebGet(BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json, UriTemplate = "news/{id}")]
news GetNewsById(string id);
}
}
这是ServiceContract.svc
Here is ServiceContract.svc
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
namespace WCFDB
{
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "ServiceContract" in code, svc and config file together.
// NOTE: In order to launch WCF Test Client for testing this service, please select ServiceContract.svc or ServiceContract.svc.cs at the Solution Explorer and start debugging.
public class ServiceContract : IServiceContract
{
public List<news> GetNewsList()
{
using (tawaseelEntities entities = new tawaseelEntities())
{
return entities.news.ToList();
}
}
public news GetNewsById(string id)
{
try
{
int Nid = Convert.ToInt32(id);
using (tawaseelEntities entities = new tawaseelEntities())
{
return entities.news.SingleOrDefault(news => news.id == Nid);
}
}
catch
{
throw new FaultException("Something went Wrong");
}
}
}
}
这里的网址正常工作
[ ]
这里给出了端点错误
[ ^ ]
提前感谢
and here the url that is working correctly
http://localhost:42813/ServiceContract.svc/GetNewsList[^]
and here that is giving endpoint error
http://localhost:42813/ServiceContract.svc/GetNewsById/3[^]
Thankss in advance
推荐答案
这篇关于尝试GetById时,WCF REST服务在浏览器中发现端点未找到错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!