我们为客户构建了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位客户执行此操作,这是不可能的。所以,我们想知道我们是否可以从CONFIG文件中执行URL-REWRITE。
如果我们可以从配置文件中执行URL-REWRITE,那么我们会将配置文件通过电子邮件发送给每个客户,并将其放入正确的文件夹中。
我希望我明白我的问题。
WCF中的URL重写
创建一个新的WCF服务应用程序。
添加Global.asax文件。
在Application_Start方法中添加以下行:
RouteTable.Routes.Add(new ServiceRoute("api/Service1", new WebServiceHostFactory(), typeof(Service1)));
在Operation Contract of Service Contract中添加WebInvoke(接口IService1)。
[OperationContract]
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, UriTemplate = "/GetData?value={value}")]
构建和浏览项目。
不确定这是否会对你有所帮助,但我有一些类似的情况,我必须重写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);
}
};
}
}
希望这至少会以某种方式帮助你