|
|
A customer had a local NuGet feed (say C:\Packages), and a site running under IIS was reading from it. The IIS application pool did not have permission to read the folder. When querying. the LocalPackageRepository returns an empty result set.
This led us to think something was going wrong with caching or something else - it wasn't obvious that it would be a permission problem. In the debugger, I can see that an UnauthorizedAccessException is thrown, but it is caught by:
NuGet.Core.dll!NuGet.PhysicalFileSystem.GetFiles(string path = {unknown}, string filter = {unknown}, bool recursive = {unknown})
In the code it looks like this:
public virtual IEnumerable<string> GetFiles(string path, string filter, bool recursive)
{
path = PhysicalFileSystem.EnsureTrailingSlash(this.GetFullPath(path));
if (string.IsNullOrEmpty(filter))
filter = "*.*";
try
{
if (!Directory.Exists(path))
return Enumerable.Empty<string>();
else
return Enumerable.Select<string, string>(Directory.EnumerateFiles(path, filter, recursive ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly), new Func<string, string>(this.MakeRelativePath));
}
catch (UnauthorizedAccessException ex)
{
}
catch (DirectoryNotFoundException ex)
{
}
I expect that changing this behavior is out of the question, so I'm just sharing this in case anyone else encounters a similar problem.
Paul
|
|
Developer
Jul 13, 2012 at 12:02 AM
|
This discussion has been copied to a work item. Click
here to go to the work item and continue the discussion.
|
|