2010-06-23 3 views
3

У меня есть службы WCF с этим объявлен операции:Не удается передать «% 26» переменной WebGet UriTemplate в службе WCF?

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

Однако при попытке вызова URL Test/You%26Me, IIS возвращает ошибку:

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

Моя цель состоит, чтобы амперсанд в URI через его URL-кодирование:% 26

Подстановочный знак не помог. Есть ли способ предотвратить эту ошибку без отключения функций безопасности?

ответ

3

RequestPathInvalidCharacters Попробуйте использовать свойство конфигурации в файле Web.config избегая используемые символы следующим образом:

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

Я забыл указать, что я не использую .NET 4.0 еще - есть аналогичный вариант для .NET 3.5 ? – JoeGaggler

+0

Я боюсь, что единственный вариант в 3.5 заключается в реализации пользовательского RequestValidator: http://msdn.microsoft.com/en-us/library/system.web.util.requestvalidator.aspx –

+0

Это прекрасно, спасибо! – JoeGaggler