tags:

views:

198

answers:

3

I have a windows service that hosts the main WCF service. The clients for this service are both hosted in IIS 7, the first one is an IIS hosted WCF service and the second is a standard Asp.Net application. Both of the IIS hosted clients communicate with the windows service over named pipes.

The IIS hosted WCF service can communicate with the windows hosted WCF service perfectly, but the Asp.Net service fails with this error: The pipe name could not be obtained from the pipe URI: Access is denied.

My first reaction is that this is a permissions issue somewhere, but I dont know where. And second, why would the IIS hosted WCF service be able to communicate without issue, but the Asp.Net application fail?

A: 

Check the Identity of the Application Pools that the WCF and ASP.NET services resides in.

Maybe the WCF service's AppPool has an identity that has different rights than the other AppPool?

MartinHN
I thought the same thing, but they both use the same app pool. I even tried switching the user from NetworkService, to LocalSystem, to LocalUser. No luck.
Mike_G
+1  A: 

Ok, I solved it, or rather I figured out where the permission issue was.

It turns out the Anonymous Authentication setting was using some weird user created by our client (the physical person, not our WCF client), and not the NetworkService user (the identity the app pool was using).

But this almost begets another question: Why were even newly created sites defaulting to this IUSR and not the system defaults? In anycase, I just hope this gets indexed in google as, there were virtually no articles relating to it.

Mike_G
A: 

Also, you might want to note that IUSR is the default IIS7 account for Anonymous accessors. See Understanding the Built-In User and Group Accounts in IIS 7.0 for an explanation of the default accounts.

Hope this is helpful.

Howard Hoffman