2

我正在使用一种方法创建 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=file://c:\file.ext

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

我知道这行得通,因为我可以调用 .../acl/f=file.txt 并且我从我的服务中得到正确的响应,表明找不到该文件。因此,当我不在 URI 中使用任何类型的斜杠时,该方法会被正确调用。

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

谢谢,hotmail的beezlerco ...

4

2 回答 2

1

您需要对斜杠、冒号和技术上的句点进行编码。

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

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

于 2010-02-09T20:10:18.827 回答
0

我相信HttpUtility.UrlEncode是您正在寻找的。
(有关详细说明,请参阅使用 HttpUtility.UrlEncode 对 QueryStrings 进行编码

于 2010-02-09T20:10:53.790 回答