Visual Studio .NET -> sqlserver toegang via een webservice

Pagina: 1
Acties:

  • barteke
  • Registratie: September 2002
  • Laatst online: 25-06-2023
Hallo,

Ik wil een VB applicatie een opdracht laten geven om via een ASP.NET webservice een STORED PROCEDURE uit te voeren op een mssql database
Echter als ik het programma uitvoer, wordt dit afgebroken met de volgende melding:

"An unhandled exception of type 'System.Web.Services.Protocols.SoapException' occurred in system.web.services.dll

Additional information: System.Web.Services.Protocols.SoapException: Server was unable to process request. --->

System.Data.SqlClient.SqlException: Login failed for user 'MYCOMP\ASPNET'.
at System.Data.SqlClient.SqlConnection.Open()
at prjb3.Service1.MaakBestelling() in d:\inetpub\wwwroot\prjb3\Service1.asmx.vb:line 55
--- End of inner exception stack trace ---"

Dit is m'n sql connectiestring zoals die voorkomt in de webmethod van de ASP.NET webservice:

Dim sqlConn As New SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=leverancier;Data Source=MYCOMP\vsdotnet;Packet Size=4096;Workstation ID=MYCOMP")

Blijkbaar zit de sqlconnectie string niet goed in elkaar. Misschien moet er nog iets bij, of weg. Overigens werkt het wel als ik direct via de VB applicatie de stored procedure aanroep. Het zit em dus ergens met die webservice. Ik heb al bij Microsoft gekeken, maar ben daar niet echt veel wijzer geworden..

hartelijk dank bij voorbaat voor elk advies,

Bart

I am a rock, I am an Island, and a rock feels no pain and an Island never cries


  • ProgrammerX
  • Registratie: Juli 2002
  • Laatst online: 26-02-2021
Je zegt dat je direct vanuit je applicatie wel de stored procedure kan aanroepen. Kun je dan niet de slq string die je daar voor gebruikt, ook gebruiken voor de connectie tussen je webservice en de database ? Eigenlijk als je dezelfde slq string zou gebruiken, zou ie het zo moeten doen. Is dit niet het geval dan moet je denk ik toch eens ergens anders heen kijken dan de sql string.

Heb je bij je webservice ook een sqladapter (of hoe dat ding ook heet :) ) ? Zo ja, dan kun je dacht ik ook op designtime je sql string instellen (property connection string dacht ik) en testen of die het doet.

Verwijderd

Je maakt gebruik van integrated security, maar ik weet niet of je user credentials wel correct door de VB app worden doorgegeven. Probeer eens via de webbrowser naar die webservice te gaan, om zo die functie aan te roepen, en kijk of dat wel lukt.

  • barteke
  • Registratie: September 2002
  • Laatst online: 25-06-2023
Ik maak nu geen gebruik van een dataadapter, dit is niet nodig. Ik voer gewoon de volgende query uit: strCmdText = "EXECUTE StoredProcedure" dit werkt normaal gesproken.

ik gebruik al exact dezelfde sql connectiestring! het zit hem blijkbaar in de mycomp/ASPNET account, ik heb die instellingen al verandert van dat account, ander password en zo, maar dat helpt dus niet. Zoals ik het lees heeft dat user account geen rechten om toegang te krijgen tot de sqlserver.. ik snap dus nog niet hoe ik dit voor elkaar moet krijgen.

als je de services bekijkt op de computer, staat daar ook het volgende: ASP.NET state service. Deze was niet opgestart, dit heb ik nu gedaan, maar het maakt nog steeds geen verschil. helaas.. toch nog even verder kijken..

I am a rock, I am an Island, and a rock feels no pain and an Island never cries


  • barteke
  • Registratie: September 2002
  • Laatst online: 25-06-2023
als ik de asmx file aanroep via de webbrowser, geeft ie "pagina niet gevonden" aan. Ik weet verder ook niet of dat veel zegt. Ik heb het ook niet gemaakt om uitgevoerd te worden via de browser..

I am a rock, I am an Island, and a rock feels no pain and an Island never cries


Verwijderd

Uhm ... een webservice bestaat voornamelijk uit een bak ASP.Net pagina's, dus je moet het via het web kunnen gebruiken. Zie http://samples.gotdotnet....taTypes/VB/DataTypes.asmx voor een voorbeeld hoe het eruit zou moeten zien.

Kijk eens in de SQL Server Enterprise Manager welke users toegang hebben tot jouw database?
/me is geen SQL Server held, maar daar zal ergens de sleutel liggen, denk ik ..

[ Voor 0% gewijzigd door Verwijderd op 17-10-2002 13:10 . Reden: Toevoeging .. ]


  • ProgrammerX
  • Registratie: Juli 2002
  • Laatst online: 26-02-2021
Maar je kunt toch aangeven in je sql string met welke account je wil verbinden ?? Als je hetzelfde account gebruikt vanuit je applicatie, dan vanuit je webservice moet dat toch geen verschil maken, toch ? Zolang je precies dezelfde connectiestring gebruikt, gaat het volgens mij goed.

  • barteke
  • Registratie: September 2002
  • Laatst online: 25-06-2023
MrX - ik krijg die pagina wel te zien, maar als ik op "invoke" druk gebeurd er verder niks.

ProgrammerX - Ik gebruik dezelfde connectiestring, maar het werkt dus niet. Ik kan geen connectie maken met de SQL server...

I am a rock, I am an Island, and a rock feels no pain and an Island never cries


  • ProgrammerX
  • Registratie: Juli 2002
  • Laatst online: 26-02-2021
barteke schreef op 17 oktober 2002 @ 13:53:
MrX - ik krijg die pagina wel te zien, maar als ik op "invoke" druk gebeurd er verder niks.

ProgrammerX - Ik gebruik dezelfde connectiestring, maar het werkt dus niet. Ik kan geen connectie maken met de SQL server...
Nu weet ik niet veel van .NET, maar volgens mij moet je wel een output krijgen als je een method invoked. Volgens mij is er dan misschien toch iets anders mis. Heb je al eens geprobeerd een andere method te invoken ?

Edit : typo

  • barteke
  • Registratie: September 2002
  • Laatst online: 25-06-2023
Ik heb het al voor elkaar gekregen.. Eureka!

Ik heb twee dingetjes aangepast in het machine.config bestanden:

<impersonate = "false" username="" password=""> verandert in:
<impersonate = "true" username = "mijnaccountaam" password="mijnpassword">

en bij <ProcessModel> in machine.config heb ik dezelfde username en password opgegeven, deze gebruik ik ook om toegang te krijgen tot de sqlserver.
Ik maak dus verder geen gebruik meer van de door Visual Studio .NET aangemaakte ASP.NET account.

Enfin, het werkt nu en dat is alles wat ik wilde. :) hartelijk dank in elk geval allemaal.

pz

Bart

I am a rock, I am an Island, and a rock feels no pain and an Island never cries

Pagina: 1