WCF REST Service - 401 Unauthorized
Wir sind in den Prozess der Entwicklung eines WCF REST web service, der erhält nur ein Haufen von beliebigen text aus jedem anonymen Benutzer, und dann führt einige Verarbeitung auf back-end.
Zum Beispiel, hier ist eine Methode, die von unserem web-service:
[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...
}
}
Wenn wir nur die Verwendung der standardmäßigen IIS-Einstellungen erhalten wir eine (401) Unauthorized
. Jedoch, nach viel Versuch und Irrtum haben wir herausgefunden, dass wir konnte es zu arbeiten, indem Sie den SCHREIB-Zugriff für "Jeder" auf die tatsächliche .svc
- Datei für unseren service.
Meine Frage ist: warum in der Welt würde IIS müssen über SCHREIBZUGRIFF verfügen, um eine .svc
- Datei für diese Arbeit? Gibt es einen besseren Weg, oder bin ich stecken mit diesem hackish (und möglicherweise unsichere) Lösung?
WTF Microsoft?
Möglicherweise im Zusammenhang mit:
- SETZEN und LÖSCHEN in RESTful WCF-Dienst Ursache 401 Unauthorized error
- IIS7 Post/Put/Patch/Löschen WCF oData - Authentifizierung mit Fehler 401.3
- Die Zugriffsrechte nicht unbedingt gewährt werden müssen, "Alle". Stattdessen muss der authentifizierte Benutzer über diese Rechte verfügen. Für den anonymen Zugriff das IUSR".
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich auch gefunden, diese können behoben werden, indem
<authentication mode="None" />
innerhalb von<system.web>
in Ihremweb.config
Nach einem Gespräch mit einem tech-Vertreter von M$ wurde ich informiert, dass dies tatsächlich das erwartete Verhalten. Der Dienst muss über einen Schreibzugriff aktiviert für jemanden, der eine Anfrage zu senden, um es, und wenn Sie dies tun, wird es tatsächlich einen Schreibzugriff automatisch auf die .SVC-Datei als auch.