C# 我们可以为WCF做URL重写吗

C# 我们可以为WCF做URL重写吗,c#,wcf,url-rewriting,C#,Wcf,Url Rewriting,我们为客户构建了WCF服务,并部署了DLL。一切都很完美,但我们被告知必须更改WCF的URL 比如说,我们当前的WCF URL如下所示 https://xxx.xxxxx.xxx/EGov/PostBox.svc 现在,他们想让我们把这个URL改成 https://xxx.xxxxx.xxx/EGov/TransferService.svc 将文件名从PostBox.svc更改为TransferService.svc很容易,但我们已经为我们的100位客户完成了更改,这是不可能的。所以,我们想

我们为客户构建了WCF服务,并部署了DLL。一切都很完美,但我们被告知必须更改WCF的URL

比如说,我们当前的WCF URL如下所示

https://xxx.xxxxx.xxx/EGov/PostBox.svc
现在,他们想让我们把这个URL改成

https://xxx.xxxxx.xxx/EGov/TransferService.svc
将文件名从PostBox.svc更改为TransferService.svc很容易,但我们已经为我们的100位客户完成了更改,这是不可能的。所以,我们想知道是否可以从配置文件进行URL重写

如果我们可以从配置文件中进行URL-REWRITE,那么我们将通过电子邮件将配置文件发送给每个客户,以将其放入正确的文件夹中


我希望我把我的问题说清楚。

不确定这是否会对您有所帮助,但我有一些类似的场景,我必须重写URL(对我来说,我不必向用户显示.svc文件名)

    public class Route : IHttpModule
   {
    public void Dispose()
    {
    }
    public void Init(HttpApplication context)
    {
        context.BeginRequest += delegate
        {
            //URL Rewriting 
            //---To remove the .svc extension service file name from URL----
             HttpContext cxt = HttpContext.Current;
            string path = cxt.Request.AppRelativeCurrentExecutionFilePath;
            {
                cxt.RewritePath(path.Insert(1, "/ReportingService.svc"), false);
            }

        };
    }
}

希望这至少在某种程度上对您有所帮助

不确定这是否会对您有所帮助,但我遇到过类似的情况,我必须重写URL(对我来说,我不必向用户显示.svc文件名)

    public class Route : IHttpModule
   {
    public void Dispose()
    {
    }
    public void Init(HttpApplication context)
    {
        context.BeginRequest += delegate
        {
            //URL Rewriting 
            //---To remove the .svc extension service file name from URL----
             HttpContext cxt = HttpContext.Current;
            string path = cxt.Request.AppRelativeCurrentExecutionFilePath;
            {
                cxt.RewritePath(path.Insert(1, "/ReportingService.svc"), false);
            }

        };
    }
}
希望这将至少在某种程度上帮助您在WCF中重写URL

创建新的WCF服务应用程序

添加Global.asax文件

在应用程序启动方法中,添加以下行:

 RouteTable.Routes.Add(new ServiceRoute("api/Service1", new WebServiceHostFactory(), typeof(Service1)));
在服务合同(接口IService1)的操作合同中添加WebInvoke

构建和浏览项目

选中此项:

在WCF中重写URL

创建新的WCF服务应用程序

添加Global.asax文件

在应用程序启动方法中,添加以下行:

 RouteTable.Routes.Add(new ServiceRoute("api/Service1", new WebServiceHostFactory(), typeof(Service1)));
在服务合同(接口IService1)的操作合同中添加WebInvoke

构建和浏览项目


选中此项:

非常感谢。但这对我没有帮助,因为我们不想重新编译项目。如果可能的话,我们只想编辑配置文件。这对我没有帮助,因为我们不想重新编译项目。如果可能的话,我们只想编辑配置文件