Проблема не в длине самого URL. Вместо этого он связан с функциями OData, которые приводят к очень длинному URL сегменту . На Windows это, кажется, ограничено 260 символами. Так что в моем случае сегмент URL MyFunction(ids='a,b,c,d,e,f')
слишком длинный.
Я нашел два разных подхода:
- Изменение Windows параметра реестра ( см. Здесь ). Я не проверял это, но комментарии в другой ветке выглядят многообещающими.
- Использование Псевдонимы параметров .
Я выбрал второй подход, так что теперь мой URL выглядит так: http://localhost:5000/odata/MyFunction(ids=@p1)?@p1='a,b,c,d,e,f'
. Приятно то, что мне не пришлось ничего менять в конфигурации OData - это просто работает.
После небольшого тестирования я достиг максимальной длины строки запроса. Я решил эту проблему, представив файл web.config
со следующим содержимым:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxUrl="20100" maxQueryString="20000" />
</requestFiltering>
</security>
</system.webServer>
<system.web>
<httpRuntime maxUrlLength="20100" maxQueryStringLength="20000" />
</system.web>
</configuration>
Недостатком второго подхода является то, что Power BI Desktop, похоже, не поддерживает это легко. Мне не удалось добавить псевдоним параметра в простой пользовательский интерфейс при просмотре службы OData. Однако при создании параметра Power BI с длинной строкой запроса я смог самостоятельно создать URL-адрес OData с параметром Power BI и псевдонимом параметра.