La référence d'objet n'est pas définie à une instance d'un objet.
Bonjour,
Bon drole de problème j'explique:
OS: Vista
Server HTTP: IIS
SQL Server 2005 EXPRESS
1) La base de donnée je l'ai cree on va l'appeler mabase
Dedans j'y ai mit mes tables et ma procedure stockée.
J'ai creer un Login pour cette base:
- Loginmabase avec password, default database: mabase
- user mapping : map -> mabase / User -> Loginmabase / default schema : dbo
- DataBase role membership for mabase:
db_datareader et db_datawriter (et le public)
J'ai un WebService Login qui va executer une procédure stockée CheckLogin avec la bonne connect string;
Quand j'appel la méthode Login de mon WS;
Code:
System.Web.Services.Protocols.SoapException: Le serveur n'a pas pu traiter la demande. ---> System.Data.SqlClient.SqlException: EXECUTE permission denied on object 'CheckLoginEmp', database 'mabase', schema 'dbo'.
Donc il arrive à se connecter, dans le log du server sql je le vois et je vois bien qu'il a essaier d'acceder à CheckLoginEmp ( Last Transact-SQL command batch: mabase.dbo.CheckLoginEmp;0 )
Maintenant je retourne dans le LOGINmabase, et je lui rajoute le ROLE DB_OWNER, je rappel ma web methode:
Code:
1 2 3
| System.Web.Services.Protocols.SoapException: Le serveur n'a pas pu traiter la demande. ---> System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.
à Service.Login(String username, String password)
--- Fin de la trace de la pile d'exception interne --- |
J'avoue ne pas vraiment comprendre :s
D'un coté il se connecte sans problème mais n'a pas de droits, de l'autre il est db owner mais j'ai un msg d'erreur bizzar :s
J'obtiens l'erreur aussi bien depuis mon site asp CLIENT, que depuis le Service.asmx directement.
Des idées ?