将 WCF Restful 服务添加到现有的 ASP.Net 网站
本文关键字:ASP Net 网站 WCF Restful 服务 添加 | 更新日期: 2023-09-27 18:30:49
我正在尝试将 wcf restful 服务添加到我现有的 asp.net 4.0 网站(不是 mvc)。我发现很难找到一个好的教程来引导将一个添加到现有的应用程序/网站。我看到的任何地方都有关于创建新项目的注释(使用 wcf restful 模板)。基本步骤是什么?我可以在没有 .svc 文件的情况下执行此操作吗,因为我使用的是 .net 4.0?有什么教程可以指给我吗?
到目前为止,我已经尝试添加定义服务协定并使用webinvoke/webget属性的IService.cs和Service.cs类,在global.asax中添加路由,在web.cong中添加服务定义,如本教程所示 http://www.codeproject.com/Articles/255684/Create-and-Consume-RESTFul-Service-in-NET-Framewor 但是当我指向localhost/restservice时,我找不到404。
更新:这是我的配置文件中的内容。请注意,这是一个现有的基于 wcf SOAP 的服务。
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="migrationServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="migrationHttpBinding" maxBufferSize ="104857600" maxReceivedMessageSize="104857600"/>
</basicHttpBinding>
</bindings>
<services>
<service name ="Site.Web.WebService.MigrationService" behaviorConfiguration="migrationServiceBehavior">
<endpoint binding="basicHttpBinding"
bindingConfiguration="migrationHttpBinding"
contract="Site.Web.WebService.IMigrationService"/>
</service>
</services>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" />
</system.serviceModel>
WCF REST 服务不需要任何*.svc
文件 - 可以使用ServiceRoute
激活它 - 有关很好的说明,请参阅无 svc 文件的 RESTful WCF 服务和无配置。
基本上归结为在global.asax
中向路由表添加一个ServiceRoute
:
protected void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.Add(new ServiceRoute("", new WebServiceHostFactory(),
typeof(YourService)));
}
不确定是否可以没有 svc 文件。添加 svc 文件没什么大不了的。只需单击"添加新项目"和"您的服务名称.svc"。在 sc 文件中输入以下代码:-
<%@ServiceHost Service="YourNamsespace.YourWCFservice"%>
.NET 4 可能带有直接添加 SVC 文件的简单方法
public class Global : System.Web.HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.Add(new ServiceRoute("", new WebServiceHostFactory(), typeof(YourService)));
}
}