IIS 6 не разрешает точки в строке запроса - PullRequest
2 голосов
/ 18 февраля 2012

Я развернул сайт asp.net со службой отдыха wcf в виртуальном каталоге.Он принимает широту / долготу в строке запроса.IIS, по-видимому, не разрешает строки запросов, которые содержат «.».Я нашел множество сообщений на эту тему, но не могу решить эту проблему.

Я попытался включить родительские пути как на родительском веб-сайте, так и в виртуальном каталоге: http://support.microsoft.com/kb/332117

У меня естьуже пробовал настройку httpRuntime для relaxedUrlToFileSystemMapping = "true" http://haacked.com/archive/2010/04/29/allowing-reserved-filenames-in-URLs.aspx

в настоящее время у меня включены оба родительских пути и мои настройки httpRuntime:

<httpRuntime requestValidationMode="2.0" requestPathInvalidCharacters="" relaxedUrlToFileSystemMapping="true" />

Ответы [ 2 ]

2 голосов
/ 18 февраля 2012

Я заметил, что у используемых вами URL-адресов есть / а не? что заставляет элементы обрабатываться как путь, а не строка запроса.

Если это было задумано и вы используете .NET 4.0, вы можете попробовать использовать элемент <schemeSettings> (настройки Uri) в конфигурации:

<uri>  
    <schemeSettings> 
        <add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes" /> 
    </schemeSettings> 
</uri> 

См. Перечисление GenericUriParserOptions для правильных значений.

Если это не было предназначено, обновите ваш шаблон, чтобы использовать? отметьте, и вы должны быть в порядке:

[WebGet(UriTemplate = "?username={username}&lat={lat}&lng={lng}")]

0 голосов
/ 18 февраля 2012

Вероятно, не то, что вы искали, но я бы использовал UrlEncode:

http://msdn.microsoft.com/en-us/library/zttxte6w.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...