Na discussão sobre o StackOverflow, você mencionou que ele funciona quando você o executa como um aplicativo C # independente, mas não quando você o executa como um aplicativo da Web.
Isso faz sentido. Quando você executá-lo como um aplicativo C # autônomo, ele está sendo executado com sua identidade. Quando você o executa por meio de um aplicativo da Web, ele está em execução usando a identidade que você configurou para solicitações da Web anônimas no IIS, nesse caso, a conta ASPNET dessa estação de trabalho local.
Dependendo da situação de segurança, você quer
(1) configure o servidor web local para que esse aplicativo atenda a solicitações anônimas da web usando uma conta diferente, uma que tenha permissões apropriadas no servidor ou
(2) configure o servidor web local para não permitir solicitações web anônimas. Você terá que fazer logon na página da web através do seu navegador da web usando o nome de usuário e senha associados a uma conta que tenha permissões apropriadas no servidor