在URL中传递网络路径

时间:2010-02-09 20:04:44

标签: c# wcf webget

我正在使用方法

创建WCF服务
[OperationContract]
[WebGet(UriTemplate = "acl/f={fullFileName}")]
string GetACL(string fullFileName);

fullFileName是网络文件的完整路径,或主机上的文件。

主机是具有webHttpBinding和行为配置的Windows服务。 我想使用类似

之类的东西从浏览器中调用它
http://localhost/webservice/acl/f=[my network path here]

我试过... / acl / f = file:// \ server \ share \ file.ext ... / ACL / F =文件:// C:\ file.ext

在浏览器中,我收到“未找到端点”。

我知道这是有效的,因为我可以调用... / acl / f = file.txt,我从我的服务中找回正确的响应,表明找不到该文件。因此,当我在URI中不使用anshort斜杠时,正确调用该方法。

对此的任何想法将不胜感激。

谢谢, beezlerco在hotmail ...

2 个答案:

答案 0 :(得分:0)

您需要对斜线,冒号以及技术上的周期进行编码。

  • \应该是%5C
  • /应为%2F
  • 。应该是%2E
  • :应为%3A

对于大多数其他特殊字符,请参阅http://www.asciitable.com/并使用'%'加上该表中的十六进制列。

答案 1 :(得分:0)

我相信HttpUtility.UrlEncode正是您所寻找的 (有关详细说明,请参阅Using HttpUtility.UrlEncode to Encode your QueryStrings