posts - 43,  comments - 394,  views - 13万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

    在基于Rest的WCF开发中,我们有必要将原来的/xxx.svc/xxx的Url更改为/xxx/xxx,在WCF4中,使用Asp.Net模式可以通过System.Web.Routing组件来完成这一操作.

    首先,在项目中引用Syste.Web.Routing和System.ServiceModel.Activation这两个程序集,然后修改web.config配置,
    1.修改system.webserver节点,增加modules

 

复制代码
代码
<system.webServer>

2
<modules runAllManagedModulesForAllRequests="true">

3
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule,

4 System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
/>

5
</modules>

6
</system.webServer>
复制代码

2.修改serviceHostingEnvironment,启用asp.net模式

 

<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" />

 

 然后修改Global.ascx中的数据:

 

复制代码
代码
protected void Application_Start(object sender, EventArgs e) {

RegisterRoutes();

}



private static void RegisterRoutes() {

RouteTable.Routes.Add(
new ServiceRoute("TestService",

new WebServiceHostFactory(), typeof(TestService)));

}
复制代码

 

最后修改Service文件,以支持该模式:

 

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

[ServiceBehavior(InstanceContextMode
= InstanceContextMode.PerCall)]
posted on   Leven  阅读(778)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
CopyRight 2008, Leven's Blog xhtml | css
Leven的个人Blog
点击右上角即可分享
微信分享提示