簡體   English   中英

我們可以為WCF做URL重寫嗎

[英]can we do URL-REWRITE for WCF

我們已經為我們的客戶構建了WCF服務並部署了dll。 一切正常,但是我們被告知必須更改WCF的URL。

可以說,我們當前的WCF URL如下所示

https://xxx.xxxxx.xxx/EGov/PostBox.svc

現在,他們希望我們將該網址更改為

https://xxx.xxxxx.xxx/EGov/TransferService.svc

將文件名從PostBox.svc更​​改為TransferService.svc很容易,但是我們已經為100個客戶做到了,這是不可能的。 因此,我們想知道是否可以從CONFIG文件進行URL重寫。

如果我們可以從配置文件中進行URL重寫,那么我們將通過電子郵件將配置文件發送給每個客戶,以將其放入正確的文件夾中。

我希望我明確了我的問題。

WCF中的URL重寫 在此處輸入圖片說明

創建一個新的WCF服務應用程序。

添加Global.asax文件。

在Application_Start方法中,添加以下幾行:

 RouteTable.Routes.Add(new ServiceRoute("api/Service1", new WebServiceHostFactory(), typeof(Service1)));

在服務合同的操作合同(接口IService1)中添加WebInvoke。

[OperationContract]
 [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, UriTemplate = "/GetData?value={value}")]

生成和瀏覽項目。

檢查此: http : //gunaatita.com/Blog/URL-rewriting-in-WCF/1052

不確定這是否對您有幫助,但是我遇到了一些類似的情況,我必須重寫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);
            }

        };
    }
}

希望這將至少在某種程度上幫助您

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM