Мы находимся в процессе разработки веб-службы WCF REST, которая просто получает пакет произвольного текста от любого анонимного пользователя, а затем выполняет некоторую обработку на серверной части.
Например, вот один из методов нашего веб-сервиса:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class MyRESTService : IMyRESTService
{
[WebInvoke(Method = "PUT", UriTemplate = "/MyRESTMethod?paramA={paramA}¶mB={paramB}")]
public Stream MyRESTMethod(string paramA, string paramB, Stream rawData)
{
//do some stuff...
}
}
Если мы просто используем настройки IIS по умолчанию, мы получаем (401) Unauthorized
. Однако после долгих проб и ошибок мы выяснили, что можем заставить его работать, предоставив WRITE доступ к «Все» в действительном файле .svc
для нашего сервиса.
Мой вопрос: почему в мире IIS должен иметь WRITE доступ к файлу .svc
, чтобы это работало? Есть ли лучший способ, или я застрял с этим хакерским (и, возможно, небезопасным) обходным путем?
WTF Microsoft?
Возможно связано: