我試圖建立一個簡單的返回當前時間的基本REST Web服務,每當我嘗試,我得到以下錯誤,每當我嘗試打電話給我服務http://localhost:PORT/TimeService/CurrentTime:RESTful Web服務端點沒有發現
未找到端點。請參閱服務幫助頁面,以構建 有效的服務請求。
我在做什麼錯?下面你可以找到我使用的所有代碼。謝謝
Service1.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using System.ServiceModel.Activation;
using System.ServiceModel.Web;
using System.Text;
namespace WcfRestService1
{
[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class TimeService
{
[WebGet(UriTemplate = "CurrentTime")]
public string CurrentTime()
{
return DateTime.Now.ToString();
}
}
}
的Global.asax
using System;
using System.ServiceModel.Activation;
using System.Web;
using System.Web.Routing;
namespace WcfRestService1
{
public class Global : HttpApplication
{
void Application_Start(object sender, EventArgs e)
{
RegisterRoutes();
}
private static void RegisterRoutes()
{
RouteTable.Routes.Add(new ServiceRoute("TimeService",
new WebServiceHostFactory(), typeof(TimeService)));
}
}
}
的web.config
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</modules>
</system.webServer>
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<standardEndpoints>
<webHttpEndpoint>
<!--
Configure the WCF REST service base address via the global.asax.cs file and the default endpoint
via the attributes on the <standardEndpoint> element below
-->
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/>
</webHttpEndpoint>
</standardEndpoints>
</system.serviceModel>
</configuration>
我不知道了手,如果引起execption但你難道不缺少對CURRENTTIME方法 –
的'[OperationContract的]'屬性由於.NET 4.0,你不需要[OperationContract的],如果你有WCF HTTP服務的[WebGet]或[WebInvoke]。 – carlosfigueira
其中vdir/application是global.asax所在位置?如果它不是直接在IIS根目錄下,那麼地址應該是http:// localhost:PORT/ApplicationName/TimeService/CurrentTime – carlosfigueira