Scenario: WCF Service using SqlRoleProvider for authentication with a Sql Server 2012 Database server. WCF is hosted on a IIS7 webserver.
please see this error:
System.NullReferenceException: Object reference not set to an instance of an object.
at System.Web.Security.Roles.GetRolesForUser(String username)
RoleManagement is enabled.
On my local development machine (server 2012, iis7) this works fine. When I log in and call the method the roles are retrieved.
On the other server (test environment) it's not working. I can login (user is authenticated with user and pass against sql server database) but when I try and retrieve the roles for that user, I get a nullreferenceexception.
How is this possible, does anyone have any leads on to where this problem might occur?
Best regards.
This issue sounds like this asp.net bug.
connect.microsoft.com
A workaround is to adjust your web server tracing level. For example, adding the follow settings in your web.config file would resolve the issue,
blergh
Googling with the tags Stack Overflow provided I came across this site: http://www.lhotka.net/weblog/CallingRolesGetRolesForUserInAWCFService.aspx
In short: apparently something broke between .net 3.5 and .net 4.
To solve this issue call:
instead of
The difference is in the
.Provider
which is added in the middle. After adding this it worked fine.