Announcement

Collapse
No announcement yet.

Webservice aus SQLCLR Funktion

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Webservice aus SQLCLR Funktion

    Ich rufe aus einer SQL .NET Funktion über einen Webservice einen Wert ab. Funktionieren tuts, nur wollt ich mich jetzt mit den Rechten der Webserviceanwendung vertraut machen.

    Deshalb habe ich unter IIS demWebserviceverzeichnis anonyme Authentifizierung ausgeschaltet und stattdessen die WIndowauthentifizierung an. Ebenfalls hab ich die web.config Datei um folgende Zeilen erweitert:

    <authentication mode="Windows" />
    <identity impersonate="true"/>


    Der Webservice ist nun nur noch von bekannten Accounts aus anzusprechen. Das hab ich sowohl über den IE als über eine kleine Delphi Anwendung ausprobiert.

    Allerdings habe ich ein Problem, wenn ich im SQL Server meine .NET Funktion aufrufe, die ebenfalls eine Verbindung zum Webservice herstellt. Egal welche Rechte ich vergebe, ich bekomme immer eine Fehlermeldung 401, Access denied.

    Worauf muss ich achten ?

    Msg 6522, Level 16, State 1, Line 1
    A .NET Framework error occurred during execution of user defined routine or aggregate 'Test':
    System.Net.WebException: The request failed with HTTP status 401: Access Denied.
    System.Net.WebException:
    at System.Web.Services.Protocols.SoapHttpClientProtoc ol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
    at System.Web.Services.Protocols.SoapHttpClientProtoc ol.Invoke(String methodName, Object[] parameters)
    at TOPCService.Test(String YourName)
    at Functions.Test(String YourName)

  • #2
    Hallo,

    Worauf muss ich achten ?
    unter welchem Dienstkonto wird der SQL Server ausgeführt? Wenn das vom Dienst verwendete Konto ungeeignet ist, kann der Webservice-Proxy über die Eigenschaften Credentials (ggf. auch
    UnsafeAuthenticatedConnectionSharing) das beim Webservice-Aufruf zu verwendende Benutzerkonto vorher definieren, indem eine NetworkCredential-Instanz die für den Zugriff notwendigen Login-Informationen liefert.
    Zuletzt editiert von Andreas Kosch; 19.01.2007, 08:40.

    Comment


    • #3
      Originally posted by Andreas Kosch View Post
      unter welchem Dienstkonto wird der SQL Server ausgeführt?
      Vielen Dank für die Antwort,

      der SQL Server läuft unter dem Konto "NETWORK SERVICE". Rechte im Webservice Verzeichnis habe ich eingeräumt.


      Hätten Sie einen Code, wie ich das über die Credential lösen kann. Der Webservice ist unter Delphi.NET programmiert, und mit diesen ganzen NetworkCredentials und Proxyklassen hab ich mich noch nicht tief genug beschäftigt.

      Comment

      Working...
      X