本文介绍了无法传递“%26"WCF服务中的WebGet UriTemplate变量?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个使用此声明的操作的WCF服务:

I have a WCF service with this declared operation:

[WebGet(UriTemplate = "Test/{*testString}")]
public String Test(String testString)
{
    return testString;
}

但是,当尝试调用URL Test/You%26Me 时,IIS返回错误:

However when attempting to invoke the URL Test/You%26Me, IIS returns an error:

A potentially dangerous Request.Path value was detected from the client (&).

我的目标是通过其URL编码:%26允许URI中的&"号

My goal is to allow an ampersand in the URI via its URL-Encoding: %26

通配符无济于事.有什么方法可以在不禁用安全功能的情况下防止此错误?

The wildcard did not help. Is there any way to prevent this error without disabling security features?

推荐答案

尝试使用 RequestPathInvalidCharacters 配置属性,避免使用如下所示的字符:

Try using RequestPathInvalidCharacters configuration property in Web.config avoiding used characters as follows:

<system.web>
   <httpRuntime requestPathInvalidCharacters="<,>,*,:,\\" />
</system.web>

这篇关于无法传递“%26"WCF服务中的WebGet UriTemplate变量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

06-08 18:58